我有以下maven检查样式插件配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<consoleOutput>true</consoleOutput>
<configLocation>https://someUtl.com/file.xml</configLocation>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
注意
<configLocation>https://someUtl.com/file.xml</configLocation>
file.xml可以通过浏览器下载,但需要登录名和密码。有没有办法在maven或插件配置中指定这些登录名/密码?
答案 0 :(得分:3)
在下面,这会使用Plexus,而URL.openStream()
依次使用Authenticator
。
This answer显示了如何在Java代码中使用configLocation
,但我无法找到Maven的等价物。我倾向于说这是不可能的。
或者,您可以在单独的mojo执行中下载文件,然后将target
指向下载的文件,该文件可以位于configLocation
文件夹的任何位置。
我认为this answer提供了一些关于如何在Maven中下载文件的好主意。首先,如果您的文件是Maven工件,则可以使用Maven Dependency Plugin。
然后我们完全循环,因为如果你的Checkstyle配置包含在Maven工件中,你就不必将dependency
设置为远程位置,但是你要将该工件添加为{您的Checkstyle插件执行的{1}}。由于Maven根据依赖关系定义了所有内容,这是我的方法,这正是我设置自己的Checkstyle配置的方式。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.totaalsoftware.incidentmanager</groupId>
<artifactId>checkstyle-config</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
<configuration>
<configLocation>checkstyle.config.xml</configLocation>
...
</configuration>
</plugin>
显然,在上面的示例中,checkstyle.config.xml
位于checkstyle-config
JAR的根目录中。