Apache Maven JDeps Plugin
Mandy Chung
mandy.chung at oracle.com
Fri Feb 20 04:11:20 UTC 2015
Thanks I'll check it out.
Mandy
On 2/19/2015 12:10 PM, Robert Scholte wrote:
> Hi Mandy,
>
> based on your proposal I've added 2 parameters:
> dependenciesToAnalyzeIncludes and dependenciesToAnalyzeExcludes
> This way it's not an All-Or-Nothing option, but instead you have full
> control over the dependencies to include.
> You can select the dependencies by using the pattern
> groupId:artifactId in combination with '*'.
>
> Some configuration examples:
> This will select all dependencies for the specified scope (compile or
> test, depending on the goal)
> <dependenciesToAnalyzeIncludes>
> <include>*:*</include>
> </dependenciesToAnalyzeIncludes>
>
> Here are some other patterns, which are allowed
> <dependenciesToAnalyzeIncludes>
> <include>org.foo.*:*</include>
> <include>com.foo.bar:*</include>
> <include>dot.foo.bar:utilities</include>
> </dependenciesToAnalyzeIncludes>
>
> With dependenciesToAnalyzeExcludes you can exclude a subset of
> dependenciesToAnalyzeIncludes.
>
> <dependenciesToAnalyzeExcludes>
> <exclude>org.foo.test:*</exclude>
> </dependenciesToAnalyzeExcludes>
>
> This should match your requirements.
>
> Regards,
> Robert Scholte
>
>
> Op Wed, 18 Feb 2015 05:46:37 +0100 schreef Mandy Chung
> <mandy.chung at oracle.com>:
>
>> Hi Robert,
>>
>> Indeed this looks very useful.
>>
>> On 2/16/2015 10:45 AM, Alan Bateman wrote:
>>> On 16/02/2015 18:28, Robert Scholte wrote:
>>>> Hi Alan,
>>>>
>>>> if you are referring to the -R / -recursive option of the jdeps
>>>> tool, then yes you can.
>>>> See
>>>> http://maven.apache.org/plugins-archives/maven-jdeps-plugin-LATEST/maven-jdeps-plugin/jdkinternals-mojo.html#recursive
>>>> I think jdeps is first of all interesting for the classes of the
>>>> current Java project, so I've set the default of this parameter to
>>>> 'false'. However, if the majority thinks it is better to activate
>>>> this by default, we will consider to change this value.
>>> I could imagine wanting to run it twice: once for the current
>>> project where I want the build to fail if it makes direct use of
>>> JDK-internal APIs, and a second time to run with -R and emit
>>> warnings if any of the transitive dependences (that I don't control)
>>> are using JDK internal APIs.
>>
>> Another alternative to running jdeps -R, the plugin can run jdeps on
>> all of the transitive dependences of the current project (all JAR
>> files can be put in one jdeps command) that will find out if any of
>> its dependences (analyze all classes) is using JDK internal API.
>>
>> jdeps -R will only analyze classes that are referenced from the root
>> set (i.e. the arguments passed to jdeps that I assume be the current
>> project) and doesn't analyze any class in the dependences that is not
>> referenced transitively.
>>
>> The default is to run jdeps on the current project sounds reasonable
>> to me.
>>
>> Mandy
More information about the jigsaw-dev
mailing list