小编Ama*_*den的帖子

如何使用常春藤来构建一个没有将jar复制到lib目录的战争

我的目标是让我的ant构建脚本构建一个war文件,并包含常春藤知道这个项目依赖的jar.我现在能想出的最佳代码如下

<mkdir dir="dist/lib"/>
<ivy:retrieve pattern="dist/lib/[artifact].[ext]" sync="true"/>
<war destfile="dist/${ivy.module}.war" basedir="build" includes="**/*.class"
    webxml="${war.webxml}">
    <fileset dir="${war.web}"/>
    <lib dir="dist/lib"/>
</war>
Run Code Online (Sandbox Code Playgroud)

这段代码的问题是它复制了两次罐子.一旦进入我的dist/lib目录,再次进入战争时创建它.它有效,但我无法摆脱有更好的方式的感觉.

我想做的更像是以下内容

<ivy:cachepath pathid="locpathref.classpath"/>
<war destfile="dist/${ivy.module}.war" basedir="build" includes="**/*.class"
    webxml="${war.webxml}">
    <fileset dir="${war.web}"/>
    <lib refid="locpathref.classpath"/>
</war>
Run Code Online (Sandbox Code Playgroud)

问题是lib标签不会引入任何类型的refid.任何想法或我是否坚持使用额外的文件副本?

ant ivy

6
推荐指数
1
解决办法
8184
查看次数

DecimalFormat子模式边界不能正常工作

我使用DecimalFormat创建一个总长度为6个字符的格式化小数.起初我使用了格式字符串new DecimalFormat("000.00")但这给了我一个负数的错误.添加减号并使第一个空格更大,导致-005.25而不是-05.25所希望的.

我已经能够使用以下代码解决此问题

DecimalFormat fmt;  
if(netAmt < 0){  
    fmt = new DecimalFormat("00.00");  
}else{  
    fmt = new DecimalFormat("000.00");  
}  

System.out.println(fmt.format(netAmt));
Run Code Online (Sandbox Code Playgroud)

但是DecimalFormat具有将;负数格式设置为不同于正数的字符.我无法正常工作.据我所知,以下代码应该像上面这样工作.

DecimalFormat fmt = new DecimalFormat("000.00;00.00");  

System.out.println(fmt.format(netAmt));
Run Code Online (Sandbox Code Playgroud)

结果是,之前的模式;用于负数和正数,导致-005.25错误保留.我究竟做错了什么?我误解了什么;是为了什么?

java decimalformat

5
推荐指数
2
解决办法
1905
查看次数

标签 统计

ant ×1

decimalformat ×1

ivy ×1

java ×1