2016-07-20 2 views
3

私たちは、使用しているライブラリのライセンスを一覧表示するサードパーティのファイルを作成しようとしています。このため、license maven pluginとそのadd third partyターゲットを使用しています。Maven License Plugin:Unknown license

ほとんどのライブラリでうまくいきます。 依存関係のいくつかは非常に古いものであり、Maven Centralには存在しません。他のいくつかのために、私たちは変更を加えました。どちらの場合も、Nexusの第三者リポジトリに自分自身を保存します。我々は、彼らが認識されていないターゲットを実行すると

<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.company.lib</groupId> 
<artifactId>lib-jcuda</artifactId> 
<version>0.4.2</version> 
<description>POM was created by Sonatype Nexus</description> 
<licenses> 
<license> 
<name>MIT License</name> 
<url>http://www.opensource.org/licenses/mit-license.php</url> 
<distribution>repo</distribution> 
</license> 
</licenses> 
</project> 

事が、あり、そして我々は次のメッセージを得る:

[WARNING] There is 16 dependencies with no license : 
[WARNING] - com.spacemetric.lib--lib-jcublas--0.4.2 
[WARNING] - com.spacemetric.lib--lib-jcuda--0.4.2 
(Unknown license) lib-jcuda (com.spacemetric.lib:lib-jcuda:0.4.2 - no url defined) 

これらのライブラリーは、例えば以下のように、ライセンス情報が含まれていません-Xフラグをオンに切り替えると、いくつかの追加情報が表示されます。

私は私がテストするために構築されたいくつかのJavaコードを実行した場合、私はノー問題にライセンス情報を見ることができます:

MavenXpp3Reader mavenreader = new MavenXpp3Reader(); 
    String pomfile = "C:\\Users\\me\\.m2\\repository\\com\\company\\lib\\lib-jcuda\\0.4.2\\lib-jcuda-0.4.2.pom"; 
    try (FileReader reader = new FileReader(pomfile);) { 
     Model model = mavenreader.read(reader); 
     model.setPomFile(new File(pomfile)); 
     MavenProject project = new MavenProject(model); 

     List<License> licenses = project.getLicenses(); 
     for (License l : licenses) { 
      System.out.println(l.getUrl()); 
     } 
    } 
    catch (IOException | XmlPullParserException e) { 
     e.printStackTrace(); 
    } 

は、私たちの依存関係をつかむときに我々が欠けている明白なものはありますか?この問題は、私たちがNexusに自分自身を追加しなければならなかった図書館でのみ発生するように思われます。

私はドキュメントをかなりよく見てきましたが、プラグインのソースもありましたが、なぜライセンスが考慮されていないのかわかりませんでした。

おかげで、あなたのコメントを踏まえて

+0

可否チェックメッセージに戻って来ると、私はなぜMavenの内のlib-jcudaためのプラグインのチェックが中心直接混乱しています。内部Nexusの第三者レポでしか利用できないので、もちろん見つからないでしょう。それは問題だろうか? – jlengrand

答えて

0

:あなたは、社内の維持の依存関係のためのmaven中央のネクサス(ミラー)を指すようにあなたのsettings.xmlを設定することがありますか?

あなたはこのように、この何かを設定することができます。

<settings> 
... 
    <mirrors> 
    <mirror> 
     <id>UK</id> 
     <name>UK Central</name> 
     <url>http://uk.maven.org/maven2</url> 
     <mirrorOf>central</mirrorOf> 
    </mirror> 
    </mirrors> 
    ... 
</settings> 
+0

https://maven.apache.org/guides/mini/guide-mirror-settings.htmlも参照してください。 –

関連する問題