0

次の方法で MINA に依存するローカルの Maven リポジトリで構成された独自の JAR があります。

<!-- mina-core-2.0.2.jar -->
<dependency>
  <groupId>org.apache.mina</groupId>
  <artifactId>mina-core</artifactId>
  <version>2.0.2</version>
</dependency>

<dependency>
    <groupId>org.apache.mina</groupId>
    <artifactId>mina-integration-jmx</artifactId>
    <version>2.0.2</version>
</dependency>

私のライブラリが必要とするように Maven がバージョン 2.0.2 の JAR をダウンロードすることを期待してこれを書きました。

しかし、2.0.2 アーティファクトは Eclipse によって「バンドル」として認識されました。

アーティファクトは次のように依存mina-integration-jmxしますmina-integration-ognl

<dependency>
  <groupId>${project.groupId}</groupId>
  <artifactId>mina-integration-ognl</artifactId>
  <version>${project.version}</version>
  <type>bundle</type>
</dependency>

つまりmina-integration-ognl、バンドルになりたいということです。

このアーティファクトはリポジトリに表示されますが、ダウンロードできない理由はわかりません。

私のPOM全体

この POM はorg.red5:red5アーティファクトの作成に使用されました。

<?xml version="1.0"?>
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.red5</groupId>
  <artifactId>red5</artifactId>
  <name>Red5 Library</name>
  <version>1.0.0-RC1</version>
  <description>Red5 Core Library</description>
  <dependencies>




<!-- com.springsource.slf4j.api-1.6.1.jar -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.6.1</version>
</dependency>

<!-- com.springsource.org.apache.xerces-2.9.1.jar -->

<!-- mina-core-2.0.2.jar -->
<dependency>
  <groupId>org.apache.mina</groupId>
  <artifactId>mina-core</artifactId>
  <version>2.0.2</version>
</dependency>


<!-- commons-beanutils-1.8.2.jar -->
<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.8.2</version>
</dependency>

<!-- ehcache-core-2.2.0.jar -->
<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache-core</artifactId>
    <version>2.2.0</version>
</dependency>

<!-- com.springsource.org.apache.commons.lang-2.4.0.jar -->
<dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>2.4</version>
</dependency>

<!-- jaudiotagger-1.0.8.jar -->
<dependency>
    <groupId>org.jaudiotagger</groupId>
    <artifactId>jaudiotagger</artifactId>
    <version>1.0.8</version>
</dependency>

<!-- logback-classic-0.9.26.jar -->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>0.9.26</version>
</dependency>

<!-- logback-core-0.9.26.jar -->
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
    <version>0.9.26</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>


<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jul-to-slf4j</artifactId>
    <version>1.6.1</version>
</dependency>

<!-- httpclient-3.1.0.jar -->
<dependency>
    <groupId>commons-httpclient</groupId>
    <artifactId>commons-httpclient</artifactId>
    <version>3.1</version>
</dependency>

<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.4</version>
</dependency>

<!-- bcprov-jdk16-145.jar -->
<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcprov-jdk16</artifactId>
    <version>1.45</version>
</dependency>

<!-- xmlrpc-2.0.1.jar -->
<dependency>
    <groupId>org.apache.ws.xmlrpc</groupId>
    <artifactId>xmlrpc</artifactId>
    <version>2.0.1</version>
</dependency>

<dependency>
    <groupId>org.apache.mina</groupId>
    <artifactId>mina-integration-jmx</artifactId>
    <version>2.0.2</version>
</dependency>

<dependency>
    <groupId>org.opensymphony.quartz</groupId>
    <artifactId>quartz</artifactId>
    <version>1.6.5</version>
</dependency>

<!-- com.springsource.org.codehaus.groovy-1.7.0.jar -->
<dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy</artifactId>
    <version>1.7.0</version>
</dependency>

<!-- jython-2.5.jar -->
<dependency>
    <groupId>org.python</groupId>
    <artifactId>jython</artifactId>
    <version>2.5.0</version>
</dependency>

</dependencies>
</project>

依存関係は、red5.jar から JarAnalyzer を使用して派生させた後、red5.jar をローカル リポジトリにインストールしました。

Eclipse プロジェクトの後半で、このアーティファクトは次の POM で参照されました。

<dependencies>
<dependency>
    <groupId>cglib</groupId>
    <artifactId>cglib</artifactId>
    <version>2.2.2</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.6.1</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.red5</groupId>
    <artifactId>red5</artifactId>
    <version>1.0.0-RC1</version>
</dependency>
</dependencies>
4

3 に答える 3

0

また、mina-integration-jmx を使用している場合の「Missing artifact org.apache.mina:mina-integration-ognl:bundle:」など、pom に Missing artifact エラーがいくつかありました。これがあなたの状況でうまくいくとは言えませんが、以下のサンプル プロジェクトを Eclipse にチェックアウトし、壊れた pom の最後にタグを追加すると、これらのエラーが修正されます。

http://svn.apache.org/repos/asf/mina/mina/branches/2.0/mina-example

これが、pom の最後に付けた build タグです。

<build>
    <finalName>mina-game-server</finalName>
    <sourceDirectory>src/main/java</sourceDirectory>
    <!--  控制资源文件的拷贝
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <targetPath>${project.build.directory}</targetPath>
        </resource>
    </resources>
     -->
    <plugins>
        <!-- 设置源文件编码方式 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <defaultLibBundleDir>lib</defaultLibBundleDir>
                <source>1.7</source>
                <target>1.7</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <!-- 打包jar文件时,配置manifest文件,加入lib包的jar依赖 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>com.example.bin.StartUp</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <!-- 拷贝依赖的jar包到lib目录 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>
                            ${project.build.directory}/lib
                        </outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <!-- 解决资源文件的编码问题 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <!-- 解决mina包maven配置文件报错问题 -->
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <extensions>true</extensions>
        </plugin>
    </plugins>
</build>

私は例をテストしましたが、それらは機能します。

mina-examples プロジェクトのために作成した pom の前半に興味がある場合は、次のとおりです。

<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.shirong</groupId>
<artifactId>mina-example</artifactId>
<version>1.0.0</version>

<packaging>jar</packaging>  
<name>Apache MINA Examples</name>
<url>http://www.example.com</url>
<dependencies>

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.10</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>3.2.9.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
    <version>3.2.9.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>3.2.9.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>3.2.9.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>3.2.9.RELEASE</version>
</dependency>


<dependency>
    <groupId>org.apache.mina</groupId>
    <artifactId>mina-core</artifactId>
    <version>2.0.7</version>
</dependency>


<dependency>
  <groupId>org.apache.mina</groupId>
  <artifactId>mina-integration-jmx</artifactId>
  <version>2.0.7</version>
</dependency>

<dependency>
    <groupId>org.apache.mina</groupId>
    <artifactId>mina-integration-xbean</artifactId>
    <version>2.0.7</version>
</dependency>

<dependency>
    <groupId>org.apache.mina</groupId>
    <artifactId>mina-integration-beans</artifactId>
    <version>2.0.7</version>
    <type>bundle</type>
</dependency>

<dependency>
    <groupId>org.apache.mina</groupId>
    <artifactId>mina-integration-ognl</artifactId>
    <version>2.0.7</version>
</dependency>

<dependency>
    <groupId>org.apache.mina</groupId>
    <artifactId>mina-statemachine</artifactId>
    <version>2.0.7</version>
</dependency>

<dependency>
    <groupId>org.apache.mina</groupId>
    <artifactId>mina-filter-compression</artifactId>
    <version>2.0.7</version>
</dependency>



<dependency>
    <groupId>org.apache.mina</groupId>
    <artifactId>mina-transport-apr</artifactId>
    <version>2.0.7</version>
</dependency>

<dependency>
  <groupId>jmock</groupId>
  <artifactId>jmock</artifactId>
  <version>1.2.0</version>
  <scope>test</scope>
</dependency>



<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>jcl-over-slf4j</artifactId>
  <version>1.6.6</version>
</dependency>

</dependencies>

GL

于 2014-06-18T05:59:34.117 に答える
0

手動インストールで試してみてください。つまり、 mvn install これは、maven が一部の依存関係を自動的にダウンロードできなかったためです。そのため、cmd を使用して依存関係を手動でダウンロードする必要があります。これは、ojdbc14.jar をインストールする別の例です。

Oracle jdbc jar を Maven ローカル リポジトリに追加する方法

于 2014-03-19T05:59:12.203 に答える