是否有某种方法可以从 Maven 内部生成的 groovydoc 生成要在 IDE(如 IDEA、Eclipse 等)中使用的 jar 文件?我目前正在使用此处描述的 maven antrun 插件从一个相当大的 groovy 项目生成 groovydoc:GroovyDoc as Maven Plugin
我能够通过手动将输出文件打包到存档中来获得可用的 jar 文件,但我正在寻找一种集成方式(即使用 maven),它还允许我将这些文件部署到存储库。
是否有某种方法可以从 Maven 内部生成的 groovydoc 生成要在 IDE(如 IDEA、Eclipse 等)中使用的 jar 文件?我目前正在使用此处描述的 maven antrun 插件从一个相当大的 groovy 项目生成 groovydoc:GroovyDoc as Maven Plugin
我能够通过手动将输出文件打包到存档中来获得可用的 jar 文件,但我正在寻找一种集成方式(即使用 maven),它还允许我将这些文件部署到存储库。
如果您点击帖子中的链接,则将在该site
阶段生成 groovydoc。
为了用生成的 groovydoc 组装一个 jar,你可以使用maven-assembly-plugin
.
我创建了一个src/main/assembly
目录,其中添加了一个程序集描述符以供maven-assembly-plugin
使用。
site
这是一个工作示例,用于在阶段生成 groovydoc并且groovydoc
还打包了一个 jar。
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.stackoverflow.Q13343411</groupId>
<artifactId>groovy</artifactId>
<version>1.0-SNAPSHOT</version>
<name>${project.artifactId}-${project.version}</name>
<properties>
<gmavenVersion>1.4</gmavenVersion>
<gmavenProviderSelection>2.0</gmavenProviderSelection>
<groovyVersion>2.0.0</groovyVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovyVersion}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<version>${gmavenVersion}</version>
<configuration>
<providerSelection>${gmavenProviderSelection}</providerSelection>
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
<source/>
</configuration>
<executions>
<execution>
<goals>
<!-- Only used when doing java/groovy join builds
OR, add the dependency to groovy-all again here in the plugin
-->
<goal>generateStubs</goal>
<goal>compile</goal>
<!-- Only used when doing java/groovy join builds
OR, add the dependency to groovy-all again here in the plugin
-->
<goal>generateTestStubs</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovyVersion}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>groovydoc</id>
<phase>site</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<taskdef name="groovydoc"
classname="org.codehaus.groovy.ant.Groovydoc"
classpathref="maven.compile.classpath"
/>
<groovydoc destdir="${project.reporting.outputDirectory}/groovydoc"
sourcepath="${basedir}/src/main/groovy" use="true"
windowtitle="${project.name}"
doctitle="${project.name}"
>
<link packages="java.,org.xml.,javax.,org.xml."
href="http://download.oracle.com/javase/6/docs/api"/>
<link packages="org.apache.tools.ant."
href="http://evgeny-goldin.org/javadoc/ant/api"/>
<link packages="org.junit.,junit.framework."
href="http://kentbeck.github.com/junit/javadoc/latest"/>
<link packages="groovy.,org.codehaus.groovy."
href="http://groovy.codehaus.org/api/"/>
<link packages="org.codehaus.gmaven."
href="http://evgeny-goldin.org/javadoc/gmaven"/>
</groovydoc>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<descriptors>
<descriptor>src/main/assembly/groovydoc.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>groovydoc</id>
<phase>site</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
src/main/assembly/groovydoc.xml
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
<id>groovydoc</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>${project.reporting.outputDirectory}/groovydoc</directory>
<outputDirectory>/</outputDirectory>
</fileSet>
</fileSets>
</assembly>
如果你跑
mvn site
您将在目标目录中有一个 groovydoc jar 文件。
如果您希望在Default Lifecycle期间创建它,您可以将其更改<phase>site</phase>
为。您必须更改生成的 groovydoc 所在的目录才能使其正常工作。<phase>prepare-package</phase>