Tag: build

Maven:从构建中排除测试

我有一些我在项目的src / test / java文件夹中用作测试的类。 当我使用标准的maven编译插件运行maven时。 这些项目被编译成.class文件,并包含在打包编译代码的jar中。 我为自己创建了这些测试,以便在运行maven和构建我的版本之前在eclipse中运行。 它们只是完整性测试,不应包含在构建中。 我宁愿不把它们放在一个单独的项目中,因为对我来说,它们在这里是有道理的。 我怎么能告诉maven我不希望它编译/包含该目录中的文件? 我相信maven编译器插件生成jar如下: maven-compiler-plugin 1.6 1.6

如何覆盖存放在ant lib目录中的ant任务

在我的工作中,我们在一些Java项目中使用AspectJ。 为了使这与ant构建一起使用,我们一直将aspectjtools.jar放在ant / lib /中。 我现在正在研究一个特定的Java项目,需要使用更新版本的aspectJ。 我不想让所有使用该项目的人更新其aspectjtools.jar的本地副本。 相反,我尝试将较新的aspectjtools.jar添加到项目的lib目录中,并将以下行添加到build.xml。 但是,这并不像我希望的那样,因为ANT类加载器从ant / lib /优先加载到我在taskdef类路径中指定的jar的jar。 有没有办法强迫ant选择检查我项目的jar?

是否有一个非常类似Java的cmake的工具?

迄今为止我所知道的最好的Java构建工具似乎是maven, 但它仍然没有像cmake那样提供如此多的灵活性! 有谁知道一个类似cmake的java工具?

Ant和可用的任务 – 如果没有可用的东西怎么办?

当我使用该任务时,如果资源(例如文件)可用,则该属性仅设置为TRUE。 如果没有,则该属性未定义。 当我打印属性的值时,如果资源可用,则为true,否则只打印属性名称。 如果资源不可用,有没有办法将属性设置为某个值? 我已经尝试在可用的检查之前显式设置属性,但是然后ant抱怨: [available] DEPRECATED – 用于覆盖现有属性。 [可用]构建文件不应为不同的值重用相同的属性名称。

如何在Ant中添加与java -D等效的系统属性

我需要设置java -Djava.library.path = / some / path ,我想在运行我的ant脚本,构建我的jar时这样做。 我想我必须使用 但它不起作用。 我不能使语法工作。 我用Google搜索和找到的唯一东西就是sysproperty 但这对我没有任何意义。 我不确定这是否相关,但我使用ant来创建一个耳朵并在JBoss中部署这个耳朵。

无法找到tools.jar。 预计在C:\ Program Files \ Java \ jre6 \ li b \ tools.jar中找到它

当我尝试运行以下命令时,出现错误: $ ant -Dsdk.dir=/opt/google/appengine-java-sdk runserver -Dserver.host=192.168.1.10 这是错误: “无法找到tools.jar。预计会在C:\ Program Files \ Java \ jre6 \ li b \ tools.jar中找到它”。 我在JAVA_HOME变量中给出了jdk路径为C:\PROGRA~1\Java\jdk1.6.0_25因为我的jdk位置是C:\Program Files (x86)\Java\jdk1.6.0_25 。 有什么问题? 请帮帮我。谢谢。 当我试图运行命令ant -diagnostics时,我得到了 java.home : C:\Program Files\Java\jre6

有没有什么好工具可以查看和浏览ant构建文件?

我发现很难读取ant构建文件。 特别是如果构建文件有很多导入的文件,比如属性文件和其他xml构建文件。 因此,我想知道是否有一些好的工具可以提供帮助,例如在IDE中查看和浏览源代码。 提前致谢。 🙂

生成Ant构建文件

我有以下项目结构: root/ comp/ env/ version/ build.xml build.xml build.xml root / comp / env / version / build.xml是: Comp Env Version tasks Comp Env Version run task root / comp / env / build.xml是: Comp Env tasks Comp Env run task root / comp / build.xml是: Comp tasks 每个构建文件都会导入父构建文件,每个子项都会inheritance并覆盖父任务/属性。 我需要的是获得生成的构建XML而不运行任何东西 。 例如,如果我在root / comp / env […]

mvn install vs jar:jar

“mvn install”命令与jar:jar插件的使用有什么区别? 很明显,“安装”似乎构建了一个jar,所以,我想知道jar:jar插件需要什么。

在ant构建期间修改代码的最佳实践

承认,这听起来并不是最佳做法,但让我解释一下。 在构建期间,我们需要将构建号和系统版本粘贴到一个类中,该类的唯一目的是包含这些值并使它们可访问。 我们的第一个想法是使用系统属性,但由于部署环境的波动性(另一种说法是“系统管理员正在做奇怪的邪恶的令人毛骨悚然的东西”),我们希望对它们进行硬编码。 基本上我看到了在ant中实现它的4种可能性: 在类中的标记上使用 这种方法的问题是文件被更改,所以你必须在编译后用替换令牌… sooo丑陋,我不想用正则表达式来触摸源代码。 加上时间依赖。 复制文件,复制副本,编译副本,删除副本 一个人必须要记住序列 – 必须先编译原始类才能被副本覆盖。 时间依赖性也很难看。 复制文件,替换原件上的令牌,编译,用副本替换染色的原件 除非嵌入在编译目标中,否则相同的时间依赖性问 这也很难看,因为我们所有的构建文件都使用相同的导入编译目标。 在构建脚本中从头开始创建文件/将文件存储在源路径之外 由于没有时间依赖性,因此对前三个进行了改进,但编译器/ IDE非常不满意,因为它忽略了类。 红色标记令人不安地丑陋。 您对替代方案有何看法? 对此有什么最佳做法吗? 我当然希望我错过了一个完美的方法。 谢谢 编辑我们最终使用清单将构建号和系统版本存储在Implementation-Version属性中,取消了MyClass.class.getPackage().getImplementationVersion() 。 我发现这个解决方案是这个post的答案之一,由andersoj发表在评论中