我正在从目标文件夹中删除一个文件夹(api-docs)。当我执行Maven构建时,在生成目标文件夹时,它应该排除该文件夹(api-docs)。
目标包含类,代码生成器,生成源,javadoc-bundle-options,maven-archiver,maven-status,测试类和war文件。
我需要排除codegen中存在的(api-docs)
Codegen>生成源> web> api-docs(包含css,字体,图像,lang,lib,spec和其他一些js和html文件)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>build</phase>
<goals>
<goal>build</goal>
</goals>
<configuration>
<tasks>
<delete>
<fileset> dir="${project.build.outputDirectory}/target/codegen/generated-sources/web/api-docs"/>
</delete>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
`
我在pom.xml中添加了该内容,但无法删除。请提出
这是pom文件中构建内容的全部内容
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>com.xxx.chassis.api.plugins</groupId>
<artifactId>codegen-maven-plugin</artifactId>
<version>${codegen.plugin.version}</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<templateDir>chassis-archetypes</templateDir>
<configFile>${project.parent.basedir}/codegen-config.yaml</configFile>
<specifications>
<specification>${project.parent.basedir}/partnerships-originations-product-offer-id.yaml</specification>
</specifications>
<basePackage>com.xxx.papi.popoi</basePackage>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>build</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<delete>
<fileset dir="${project.build.directory}/codegen/generated-sources/web/api-docs/swagger-ui.min.js"/>
</delete>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${codegen.generated-sources}/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<sourcepath>${codegen.generated-sources}/java</sourcepath>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
答案 0 :(得分:0)
请共享pom文件的build-> plugins部分的全部内容。不必将maven-antrun-plugin添加到pom。目标目录中的apidocs文件夹通常由可能存在于pom文件中的maven-javadoc-plugin产生。防止创建apidocs文件夹的第一种方法是从pom中删除该插件声明。另一种方法是按照以下答案提供maven.javadoc.skip参数:https://stackoverflow.com/a/9360317/7810853
答案 1 :(得分:0)
antrun-plugin的目标是run
,而不是build
。相应地更改pom.xml应该会有所帮助:
[...]
<goals>
<goal>run</goal>
</goals>
[...]
您还应该仔细检查在哪个phase中创建了api-doc文件夹,并且应该在以后的阶段调用ant-plugin,例如package
:
[...]
<phase>package</phase>
[...]
第三点,Maven变量${project.build.outputDirectory}
通常引用文件夹target/classes
。请检查this answer了解更多详情。因此,您可以使用
<fileset dir="${project.basedir}/target/codegen/generated-sources/web/api-docs"/>
或-更精确-
<fileset dir="${project.build.directory}/codegen/generated-sources/web/api-docs"/>