2011-12-06 11 views
2

ArtifactoryとMavenを使用すると、artifactId-version.endスタイルとは異なるfilnameを使用して、正しいグループ/ artifactId/versionの依存関係をどのように参照できますか?依存関係の異なるファイル名を持つartifactIdの使い方

問題は、名前を変更することができないdllと、必須ですか?アーティファクトの命名規則。ことなので、残念ながら - プロバージョンが必要とされる新しいArtifactoryリポジトリレイアウトを作成:編集


は、ファイル名がダッシュ記号を含めることはできません、この特定の問題のための1つの可能な安価な方法を発見しましたオプションではありません!


一部はJUnitのためのソリューションは、Mavenの依存性・プラグインを使用したとMaven-確実な-プラグイン1はjUnitsを動作させることができ
をテストします。残念ながら、サーバーに戦争中にデプロイされたときに特定のsapjco3.dllが見つからないという問題は解決しません。

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.3</version> 
      <executions> 
       <execution> 
        <id>copy</id> 
        <goals> 
         <goal>copy</goal> 
        </goals> 
        <configuration> 
         <artifactItems> 
          <artifactItem> 
           <groupId>sapjco</groupId> 
           <artifactId>sapjco3</artifactId> 
           <version>3.0.7</version> 
           <type>dll</type> 
           <classifier>win32</classifier> 
           <overWrite>true</overWrite> 
           <outputDirectory>${project.build.directory}/lib</outputDirectory> 
          </artifactItem> 
         </artifactItems> 
         <stripVersion>true</stripVersion> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <systemProperties> 
        <property> 
         <name>java.library.path</name> 
         <value>${project.build.directory}/lib</value> 
        </property> 
       </systemProperties> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

答えて

2

Mavenはファイル名を気にせず、座標を気にします。リモートリポジトリにDLLを正しく追加すれば、残りの作業はmavenが行います。 依存スニペットは次のようになります。これを行った後

<dependency> 
    <groupId>com.company</groupId> 
    <artifactId>my.artifact</atifactId> 
    <version>1.0</version> 
    <type>dll</type> 
    <classifier>win32</classifier> 
</dependency> 

は、ビルド時にファイル名を変更するかdependency:copy-dependenciesまたはdependency:copyを使用

+0

はい、sapjco3.dllをsapjco-3.dllとして追加することができないため、Artifactory標準に従わずに、ファイル名をそのまま維持する必要があります。 –

+0

詳細を指定してください。誰が正確にDLLを消費していますか? Javaアプリですか?はいの場合、これはパラメータ化することができます。 SAP JavaコネクタのネイティブJava実装はありませんか? –

+0

そのJava Webアプリケーションは、sapjco3.jarのクラスを使用して、残念ながらsapjco3.dllに厳密に従います。 –

関連する問題