实现目标
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-generatedhttp://stackoverflow.com/questions/23933911/include-source-code-while-exporting-a-jar-using-maven
转载请注明原文地址: https://ju.6miu.com/read-1304232.html