Nee*_*raj 12 java maven-plugin maven-3 maven
我在一个由大约40名开发人员组成的团队中工作,我不希望任何开发人员使用某些特定的API(确切地说是java.sun.Base64)供任何开发人员使用,而是让他们使用sun API的替代品作为其专有.
是否有任何maven插件,通过它,在pom.xml中指定受限制的包,如果在代码中的任何地方使用任何这些包,构建将会中断?
或者有更优雅的方式来做到这一点?
谢谢
您希望为项目定义体系结构规则,最好通过源代码分析来实施.
Sonar现在能够在项目的质量仪表板上指定此类规则并显示违规.如果您希望构建中断,可以另外完成启用Sonar的Build breaker插件.
Sonar非常易于设置,并且可以集成到您的Maven构建过程中,而无需更改POM.
看看这个:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>macker-maven-plugin</artifactId>
<version>1.0.0-SNAPSHOT</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>macker</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
其中规则定义为不允许导入java.lang.System
<?xml version="1.0"?>
<macker>
<ruleset name="Testing rules">
<pattern name="mypackage" class="org.codehaus.mojo.**" />
<access-rule>
<message>System out is bad. Use logging instead.</message>
<deny>
<to>
<include class="java.lang.System" />
</to>
</deny>
<!--allow>
<from pattern="blah" />
</allow-->
</access-rule>
</ruleset>
</macker>
Run Code Online (Sandbox Code Playgroud)
这是我为类似目的编写的插件.
细节可以在这里看到:https://github.com/yamanyar/restrict-maven-plugin/wiki
限制从com.ya*到java.util.regex的所有访问.*
<restriction>com.ya* to java.util.regex.*</restriction>
Run Code Online (Sandbox Code Playgroud)
限制从com.ya*(com.yamanyar.core除外)到java.util.regex的所有访问.,
<restriction>com.ya*,!com.yamanyar.core.* to java.util.regex.*</restriction>
Run Code Online (Sandbox Code Playgroud)
限制从com.ya*(com.yamanyar.core除外)和com.abc.Test到java.util.regex的所有访问.
<restriction>com.ya*,com.abc.Test,!com.yamanyar.core.* to java.util.regex.*</restriction>
限制从com.ya*(com.yamanyar.core除外)和com.abc.Test到java.util.regex的所有访问.(java.util.regex.Matcher除外)<restriction>com.ya*,com.abc.Test,!com.yamanyar.core.* to java.util.regex.*,!java.util.regex.Matcher</restriction>
限制从com.ya*(com.yamanyar.core除外)和com.abc.Test到java.util.regex的所有访问.(java.util.regex.Matcher除外); 并将com.ya*(com.yamanyar.core除外)限制为java.io.PrintStre .print*()
<restriction>com.ya*,com.abc.Test,!com.yamanyar.core.* to java.util.regex.*,!java.util.regex.Matcher</restriction>
<restriction>com.ya*,!com.yamanyar.core* to java.io.PrintStre*.print*()</restriction>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3583 次 |
最近记录: |