Maven jardesc创建了一个;src";jar文件中的文件夹
我的jardesc一直工作得很好,直到昨天我将我的项目转换为maven 现在,由于某种原因,当我创建一个包含代码和包的jar文件时:org.javacode和org.resource,我在jar文件中得到以下文件夹: org/javacode src/org/resource 对于java包,它似乎工作得很好,但是对于那些包含图像资源的包,它会在根目录下创建一个额外的src文件夹 我怎样才能解决这个问题 编辑1:这里是pom.xmlMaven jardesc创建了一个;src";jar文件中的文件夹,maven,jar,src,Maven,Jar,Src,我的jardesc一直工作得很好,直到昨天我将我的项目转换为maven 现在,由于某种原因,当我创建一个包含代码和包的jar文件时:org.javacode和org.resource,我在jar文件中得到以下文件夹: org/javacode src/org/resource 对于java包,它似乎工作得很好,但是对于那些包含图像资源的包,它会在根目录下创建一个额外的src文件夹 我怎样才能解决这个问题 编辑1:这里是pom.xml <project xmlns="http://maven
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Energy3D</groupId>
<artifactId>Energy3D</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.ardor3d</groupId>
<artifactId>ardor3d-jogl</artifactId>
<version>0.9-SNAPSHOT</version>
<type>bundle</type>
</dependency>
<dependency>
<groupId>com.ardor3d</groupId>
<artifactId>ardor3d-lwjgl</artifactId>
<version>0.9-SNAPSHOT</version>
<type>bundle</type>
</dependency>
</dependencies>
</project>
4.0.0
能量3D
能量3D
0.0.1-快照
src
src
**/*.爪哇
maven编译器插件
2.3.2
1.6
1.6
com.ardor3d
ardor3d慢跑
0.9-1快照
捆
com.ardor3d
ardor3d lwjgl
0.9-1快照
捆
编辑2:
这里还有jardesc的相关部分(gui包正确地放置在org/concord/energy3d/gui中,但是在创建jar文件时,图像包错误地放置在src/org/concord/energy3d/resources/images中):
您没有遵循Maven惯例
- 您的源代码需要在下面:src/main/java
- 您的资源需要在下面:src/main/resources
- 您的测试源需要在下面:src/test/java
- 您的测试资源需要在下面:src/test/resources
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
src
src
**/*.爪哇
请发布您的POM,它可能有助于完成(请参见上面的编辑1和编辑2)。请说明您当前的目录结构。我这样做了,然后使用mvn-package而不是jardesc来生成我的jar文件。现在我在正确的文件夹(即org/app/resources)中获得了资源,但在主文件夹(即main/org/app/resources)中也获得了资源的副本。您仍然在做错误的事情。您的代码需要放在src/main/java
下——例如:src/main/java/org/app/Foo.java
;还有您在src/main/resources
下的资源--例如:src/main/resources/foo.properties
。这就是我所拥有的。例如,我有一个文件夹:src/main/resources/org/concord/energy3d/resources/icons/snap.png(我还在eclipse中将src/main/resources设置为源代码文件夹)。但不知何故,maven在jar文件中创建了main/resources/org/concord/energy3d/resources/icons/snap.png,而不仅仅是org/concord/energy3d/resources/icons/snap.png。看起来src/main/resources/打包错误,但请注意,src/main/java/的内容正确打包在jar文件中。很好,就是这样。我猜eclipse在重新排列目录之前将项目转换为maven时添加了该代码。谜团解开了,谢谢。
<sourceDirectory>src</sourceDirectory>
<resources>
<resource>
<directory>src</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>