使用Maven,我们目前正在使用以下方法从WAR文件中分离出类:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${maven-war-plugin.version}</version>
<configuration>
<packagingExcludes>WEB-INF/web.xml</packagingExcludes>
<attachClasses>true</attachClasses>
<filteringDeploymentDescriptors>true</filteringDeploymentDescriptors>
</configuration>
</plugin>
是否可以在Gradle中复制此功能?目标是在主战争工件旁边只发布.jar中的类:
ghc-templates-2.29-javadoc.jar 14-Jan-2014 15:19 112.43 KB
ghc-templates-2.29-sources.jar 14-Jan-2014 15:19 12.81 KB
ghc-templates-2.29.war 14-Jan-2014 15:19 6.05 MB
ghc-templates-2.29-classes.jar 14-Jan-2014 15:19 23.95 KB
答案 0 :(得分:3)
是的,只需运行jar
任务。由于War
插件应用了Java
插件,因此您将获得所有常规任务,就像它是普通的Java项目一样。但是,在运行assemble
时,默认情况下该任务不包含在依赖关系图中(请参阅grade docs)。要解决此问题,只需添加:
assemble {
dependsOn jar
}
另外,根据上面的例子,如果你想在jar中添加一个自定义分类器,你可以这样做:
jar {
classifier = 'classes'
}