我想創建帶有戰爭的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