我正在为文件解析器类编写测试.parse方法接收文件名作为参数,并且必须打开它才能解析它(duh).
我写了一个测试文件,我将其放入项目目录中的test/resources目录中,并希望传递此文件来测试我的解析.由于这个项目是在CVS中,并且会被其他人操纵,我无法对文件路径进行硬编码,因此我考虑使用maven $ {basedir}属性在我的测试中构建文件名.就像是:
public void parseTest() {
...
sut.parse( ${basedir} + "src/test/resources/testFile" );
...
}
Run Code Online (Sandbox Code Playgroud)
有人知道我怎么能做到这一点?
我真的想让maven将"target"文件夹写入另一个设备(ramdisk),我通常认为这是一个不同的路径.有没有符合maven2标准的方法呢?
我试图在Windows上解决这个问题,并且首选符合maven的策略.
我有使用Maven的4个嵌套子项目的项目任务:
文件不是Java - 主要是各种脚本和HTML
我正在查看各种插件来帮助完成任务:汇编,依赖,antrun,解压缩.依赖性看起来很有希望,但我不仅需要解压缩依赖jar,还要解压缩(子)项目内容.此外,由于我无法真正将操作紧缩到Maven生命周期,我将如何触发远程安装?mvn依赖:unpack?这不是非常具有描述性或直观性.是否可以在不编写插件的情况下创建自定义目标(例如project:install)?
使用Maven是公司的标准,所以请不要提供替代品 - 我几乎坚持我拥有的东西
我继承了一个目前在eclipse中构建的web项目(Servlets).
我想在它周围添加maven.但该项目的源目录不遵循maven约定.它不是在src/main/java里面,而是src/package/name/...
我现在不想改变任何事情,因为他们正在全速前进一个里程碑.我可以配置maven接受src /作为java源目录吗?谢谢
我正在设置maven构建,并且需要在命令行上将目标服务器指定为属性(然后用于选择适当的配置文件),例如
mvn -Denv=test
Run Code Online (Sandbox Code Playgroud)
如果财产未设置,我希望构建失败 - 这可能吗?
是的,我是Maven的新手.
编辑:我已经看到这个链接,这似乎暗示它是不可能的,但我不知道它是如何最新的.
我看到了这个问题,它促使我再次在Maven配置中查找(没有成功)另一种声明配置的方法,因此它被附加到父POM的配置而不是覆盖它.在Maven POM中,如果配置声明与父节点中相同的元素,则它将覆盖父节点配置.正如另一个问题所接受的答案所说,这是预期的行为.
但这并不总是理想的行为.在Maven中是否存在添加而不是覆盖配置的方法?
例如: - 提供声明配置final元素的能力,以便孩子可以添加但不能替换? - 允许子配置将元素声明为添加元素,因此它与父元素合并
对于覆盖行为并不总是需要的一个很好的例子是aspectj-maven-plugin的aspectLibraries元素.
在我的父POM中,我为aspectj插件定义了一个配置,该配置声明了一个跟踪jar用作aspectLibrary.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<executions>
<execution>
<id>compile_with_aspectj</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
<configuration>
<aspectLibraries>
<aspectLibrary>
<groupId>name.seller.rich</groupId>
<artifactId>tracing</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
<dependencies>
<dependency>
<groupId>aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>1.5.3</version>
</dependency>
</dependencies>
</plugin>
Run Code Online (Sandbox Code Playgroud)
这是所有子项目继承的,我在所有项目中都有跟踪,这很好.但是,如果我在子POM中定义另一个aspectLibrary,它将替换我的跟踪配置.
注意我对这个特定问题有一个解决方法,我对Maven的一般情况和含义感兴趣.
简单的答案是重新声明子POM中的跟踪jar配置以及新jar,但是这会产生维护问题,如果我想在配置文件中声明跟踪配置,那么可以在需要时将其禁用(我做了),然后我需要重新实现孩子的个人资料.
上面示例中的依赖项声明与父级和其他位置中的其他依赖性声明合并.我知道依赖是一种特殊情况,但它表明它是可行的.
我想将Date对象保存为可读字符串(例如22/10/2009 21:13:14),该字符串也可以解析为Date对象.
我尝试了很多东西,我能找到的最好的东西是使用DateFormater进行解析和格式化,但它有一个挫折.格式化日期时,您将丢失秒信息.我试图找到,如果有对其进行格式化并显示秒的选项(更好的将是毫秒级的,因为这是该决议的Date对象可以让你有),但我短了.
有任何想法吗?
我有一套我管理的网络应用程序,我试图转移到maven.
/pom.xml // parent pom webapp1/pom.xml // configured to point to parent webapp2/pom.xml // peer of webapp1 and points to parent.
每个webapps都引用父pom,它们目前都有一个可用的jetty maven插件.
我的问题是如何从父pom挂载每个webapps,以便mvn jetty:run在父目录中工作?
编辑到anwer:Pascal T当我尝试从根pom运行命令时,我遇到了一个错误,但是我不知道如何配置它.
例如,webapp1/pom.xml看起来像:
<project>
...
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
</plugin>
</plugins>
...
</project>
Run Code Online (Sandbox Code Playgroud)
更改到此目录并键入mvn jetty:run工作正常,并为我提供了命中能力:http:// localhost:8080/webapp1.
但是,我希望在webapp1的父级中运行,并从父目录运行所有'n'webapps.因此,http:// localhost:8080/webapp1和http:// localhost:8080/webapp2可用一个命令行参数.
顺便说一句,如果答案涉及一个tomcat插件,那就没问题了.
我熟悉使用模拟对象帮助单元测试我的Java类型,但发现不灵活可能会导致冗长和繁琐的测试类型以及大量重复.
我已经看过使用Groovy进行单元测试并取得了一定的成功.我对自己学习Scala很感兴趣,但是也想用它来测试Java.有没有人对使用Scala这样做有任何建议或参考?
更新以澄清我所追求的内容:
我已经看到Scala中存在用于单元测试的工具,比如ScalaTest.和ScalaCheck,但他们专注于如何做测试的机制.我正在寻找一些关于如何使用Scala进行单元测试的最佳实践和/或提示和技巧.例如,相当于Javaworld JUnit最佳实践文章或反模式列表,以指出常见的陷阱或有用的约定.
maven-2 ×8
java ×5
ant ×1
date ×1
date-format ×1
datetime ×1
deployment ×1
jetty ×1
junit ×1
maven-plugin ×1
scala ×1
unit-testing ×1