我想创建带有战争的jar文件,该文件应该包含与.class文件并行的源文件(.java文件)使用maven生成的jar。 (我知道有一些插件可用来生成一个单独的xyy-sources.jar文件,但我不想创建一个独立的源jar,我需要一个单独的jar文件,同时存在.class和.java文件)如何在生成的jar文件中使用maven包含与.class文件并行的源文件(.java文件)
回答
你只需要在构建标签添加资源。例如, 。
<build>
<resources>
<resource>
<directory>src/main/java</directory>
</resource>
</resources>
</build>
现在你创建的每个jar和war文件都会包含.java文件。 :)
我不确定在.class旁边包括.java是一个非常好的主意。你想要这么做的具体原因是什么?
如果您需要包括源代码,你可以创建一个单独的源JAR(是不是你要求它,但推荐的方式)通过执行MVN包
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
这是否帮助这个样子? http://maven.apache.org/plugin-developers/cookbook/attach-source-javadoc-artifacts.html
这将创建一个单独的jar文件,其中包含“sources”分类器,而不是OP所需的。 – khmarbaise 2014-09-11 06:34:34
@khmarbaise:Atul已经说过*并不是你要求的,但你能想象一个单一的理由将源代码包含在* executable * jar和.class文件中吗? – 2014-09-11 08:28:41
@SergeBallesta我编辑了我的答案,并在khmarbaise的评论后添加了“(这不是你要求的,但是推荐的方式)”。非常感谢他的评论。无论如何,我也无法猜测在可执行jar中包含源代码的原因。 – Atul 2014-09-11 09:32:33
我仍然不知道我理解你为什么会想这样做,但你可以使用maven-resource-plugin及其具体copy-resource
目标到您的构建目录中的Java文件复制到任何位置。因此,例如,将其复制到然后把它包含在内置自动,你可以做以下的罐子classes
文件夹:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>process-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/src-files-location</outputDirectory>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
- 1. 在Eclipse上使用仅包含Java源文件的JAR文件
- 2. 如何在NetBeans生成的Jar文件中包含资源文件?
- 3. 如何将仅包含.java源文件的jar文件编译为包含.class文件的.jar文件使用Eclipse
- 4. Maven生成的源文件夹文件
- 5. Maven使用.class和.java文件创建jar文件
- 6. Maven Build不包括jar文件中的.class文件
- 7. Java .class文件与jar中的jar文件
- 8. 如何在分布式jar文件中包含资源文件?
- 9. 读取.cfg文件并生成文本文件的JAR文件
- 10. 如何将java文件包含在.jar文件中?
- 11. 在Maven生成的jar文件中MANIFEST.MF中缺少Main-Class attibute
- 12. 使用maven jar插件将非Java文件和资源文件包含到测试jar中
- 13. 如何使用批处理文件编译java文件时包含jar文件
- 14. Maven:包含JAR文件中的META-INF文件
- 15. tar gz文件在Maven build后包含损坏的jar文件
- 16. 使用.java文件运行.class文件
- 17. 如何将所有.class文件从.jar文件转换成.java文件
- 18. 我的文件不包含在jar文件中Java
- 19. 包含war文件中的源文件
- 20. Java - 编辑manifest.mf使JAR中包含.class和.java文件
- 21. 如何生成.class文件?
- 22. 生成jar文件不包含$ 1类文件
- 23. Java包Jar包含文本文件和文件夹
- 24. Android cpp源文件被包含在jar文件中
- 25. Maven:在构建资源文件夹中包含文件夹
- 26. 写入作为资源包含在Jar文件中的Java属性文件
- 27. 如何从com.trueaccord.scalapb生成源文件创建jar文件
- 28. 如何从.txt文件中包含的文件名列表生成文件?
- 29. 从maven生成groovydoc的jar文件
- 30. 在Java Jar文件中包含GImages
你能解释关于“战争”的部分吗? – Thilo 2014-09-11 05:46:39
为什么要包含.class文件的源代码? **千万不要这样做**,否则会浪费真正的可执行文件中的空间而无法获得收益。如果你想要一个包含源代码和可执行jar的包,通常的方法是首先生成可执行jar,然后生成一个包含'bin'或'lib'目录的源代码jar文件。 – 2014-09-11 08:31:44
我得到了解决方案。您只需在构建标签下添加资源。例如。 src/main/java 。现在你创建的每个jar和war文件都会包含.java文件。 :)无论如何,非常感谢您的回复。 –
mac
2014-09-12 14:12:55