maven如何實現創建帶源代碼的jar包
阿新 • • 發佈:2017-10-25
tag number export includes -a porting 項目 源代碼 改變
實現目標
maven打包,在生成的jar包中帶有源代碼。記住,這個帶源代碼的意思是源代碼跟編譯生成的文件放在一個jar文件裏面,而不是單獨的一個XXX-source.jar包。
實現思想
把源代碼當作資源文件
實現方法一
<build>
<resources>
<resource>
<directory>src/main/java</directory>
</resource>
</resources>
</build>
說明:默認的資源文件夾是src/main/resource,此方法修改了資源文件夾,讓你默認的資源文件夾變成了src/main/java文件夾。而這個文件夾在maven中是默認放置源代碼的。
缺點:修改之後,src/main/resource文件夾就不是資源文件夾了,放在裏面的文件將不會被當作資源。
實現方法二
<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}</outputDirectory>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
說明:插件maven-resources-plugin默認處理資源和測試資源,把資源加入到文件夾${project.build.outputDirectory}
,這個引用表示項目的輸出文件夾。一般是項目的WEB-INF\classes
文件夾。等到打包的時候,就把這個文件夾裏面的內容打包成jar文件。所以想要把源代碼打包到jar文件裏面,就需要把源代碼當作資源文件添加到文件夾${project.build.outputDirectory}
。
缺點:代碼比較長
優點:不會修改資源文件夾,項目結構不用改變,推薦使用這一種
參考資源
- http://stackoverflow.com/questions/25779900/how-to-include-source-file-java-file-parallel-to-class-file-in-the-generated
- http://stackoverflow.com/questions/23933911/include-source-code-while-exporting-a-jar-using-maven
maven如何實現創建帶源代碼的jar包