Tag: maven maven 3

无法用maven-assembly-plugin设置最终的jar名称

这就是我configurationmaven-assembly-plugin <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.4</version> <configuration> <finalName>myapp</finalName> <archive> <manifest> <mainClass>com.myapp.Main</mainClass> </manifest> </archive> <!– <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> –> </configuration> </plugin> 我期望最终的jar文件应该是myapp.jar但它最终与myapp-jar-with-dependencies.jar 你能告诉我如何configuration从最终的名称中排除"jar-with-dependencies"吗?

Maven依赖项上的NoClassDefFoundError

我第一次使用Maven和我坚持依赖。 我用Eclipse创build了一个Maven项目并添加了依赖关系,并且没有任何问题。 但是当我尝试通过命令行运行它时: $ mvn package # successfully completes $ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App # NoClassDefFoundError for dependencies 它下载依赖关系,成功构build,但是当我尝试运行它,我得到NoClassDefFoundError: Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonParseException at tr.edu.hacettepe.cs.b21127113.bil138_4.db.DatabaseManager.<init>(DatabaseManager.java:16) at tr.edu.hacettepe.cs.b21127113.bil138_4.db.DatabaseManager.<init>(DatabaseManager.java:22) at tr.edu.hacettepe.cs.b21127113.bil138_4.App.main(App.java:10) Caused by: java.lang.ClassNotFoundException: org.codehaus.jackson.JsonParseException at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) … 3 more 我的pom.xml是这样的: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" […]

无法find源XRef链接到

我有一个大的maven项目,使用pmd插件进行代码质量检查。 自从我开始使用pmd插件,我收到以下警告消息: [WARNING] Unable to locate Source XRef to link to – DISABLED 我GOOGLE了,发现我需要实现jxr插件。 所以我将下面的内容添加到主pom.xml文件的构build属性中。 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jxr-plugin</artifactId> <version>2.3</version> </plugin> welp它并没有真正改变任何东西。 任何想法,我需要执行,以解决这个警告信息? 输出mvn -version Apache Maven 3.0.4 (r1232337; 2012-01-17 10:44:56+0200) Maven home: /usr/share/maven-bin-3.0 Java version: 1.7.0_05, vendor: Oracle Corporation Java home: /usr/lib64/icedtea7/jre Default locale: en_US, platform encoding: ANSI_X3.4-1968 OS name: "linux", version: "3.5.2-gentoo", arch: "amd64", […]

在多模块maven项目中的模块之间共享src / test类

我有一个多模块的Maven项目。 为了这个例子,考虑两个模块: data consumer 模块consumer将模块data作为依赖项。 模块data声明了一堆核心类。 在src/test下有一些testing使用它们。 这些testing需要一些冗长的对象创build,所以我有一个类中有一些实用的方法来创build这些对象。 此实用程序类( SampleDataHelper )位于src/test层次结构中。 我也有consumer模块中需要创build一些这些冗长的对象的一些testing。 我想在驻留在我的consumer src/test树中的testing中使用我的SampleDataHelper类(在data src/test定义)。 不幸的是,即使data是consumer的依赖, consumer也看不到data src/test下存在的类。 为了解决这个问题,我想我可能会创build另一个模块( data-test ),并将SampleDataHelper移动到src/main 。 然后,我将包含data-test作为data-test的testing范围依赖关系。 不幸的是,这引入了循环依赖: data使用data-test ,但data-test也需要data 。 我唯一的解决scheme是将SampleDataHelper放在data src/main下的一个test包下,希望没有真正的应用程序代码可以调用它。 我怎样才能在模块之间共享我的SampleDataHelper类, 而不是把它放在src/main ?

如何保持即使另一个configuration文件被激活activeByDefault活动的Mavenconfiguration文件?

我在我的pom.xml中有一个configuration文件,除非明确禁用(-P!firstProfile),否则应始终保持活动状态。 我通过使用activeByDefault标志解决了这个问题: <profiles> <profile> <id>firstProfile</id> <activation> <activeByDefault>true</activeByDefault> </activation> … </profile> </profiles> 现在在同一个pom.xml文件中,我定义了第二个configuration文件,只有当configuration文件真正被激活时(-P secondProfile),才能激活它。 所以默认行为是:firstProfile active,secondProfile不活动。 在另外一点上,我想激活除了第一个configuration文件之外的第二个configuration文件。 现在的问题是,如果我这样做“-P secondProfile”第一个configuration文件不幸被取消激活。 Maven文档指出: …除非同一POM中的另一个configuration文件使用前述方法之一激活,否则此configuration文件将自动激活所有构build。 所有在默认情况下处于激活状态的configuration文件在命令行中激活了POM中的configuration文件或通过其激活configuration时会自动停用。 … 有没有办法保持firstProfile始终处于活动状态(不必在settings.xml中声明)?