6

私はこれと他のたくさんのサイトで多くの質問と記事を読みました、私はまだこれを動かすことができません。

ビルドを実行するようにMavenを構成しましたが、アーティファクトをリポジトリーに入れたいと考えています。Tomcatにアーティファクトをインストールしましたが、機能しているようです。

「mvncleaninstall」を実行すると、メッセージは、アーティファクトがアーティファクトではなくローカルのMavenリポジトリにアップロードされていることを示します。

[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ my-app ---
[INFO] Installing C:\maven_projects\my-app\my-app\target\my-app-1.0-SNAPSHOT.jar to             C:\Users\Administrator\.m2\repository\com\mycompany\app\my-app\1.0
-SNAPSHOT\my-app-1.0-SNAPSHOT.jar
[INFO] Installing C:\maven_projects\my-app\my-app\pom.xml to     C:\Users\Administrator\.m2\repository\com\mycompany\app\my-app\1.0-SNAPSHOT\my-app-1.0-SNAPSHOT.pom

リポジトリを指定して「mvndeploy:deploy-file」を実行すると、アーティファクトがアーティファクトにアップロードされていることを示すメッセージが表示されますが、そこにはありません。

mvn deploy:deploy-file -DrepositoryId=libs-release-local -Durl=http://localhost:8080/artifactory/libs-release-local -D
groupId=com.mycompany.app -DartifactId=my-app -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=target/my-app-1.0-SNAPSHOT.jar

[...]

[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building my-app 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-deploy-plugin:2.7:deploy-file (default-cli) @ my-app ---
Downloading: http://localhost:8080/artifactory/libs-release-local/com/mycompany/app/my-app/1.0-SNAPSHOT/maven-metadata.xml
Uploading: http://localhost:8080/artifactory/libs-release-local/com/mycompany/app/my-app/1.0-SNAPSHOT/my-app-1.0-20130202.014428-1.jar
Uploading: http://localhost:8080/artifactory/libs-release-local/com/mycompany/app/my-app/1.0-SNAPSHOT/my-app-1.0-20130202.014428-1.pom

POM.XMLファイルは次のとおりです。

<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.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-app</name>
  <url>http://maven.apache.org</url>
  <repositories>
                      <repository>
                              <id>central</id>
                      <url>http://localhost:8080/artifactory/libs-release</url>
                      <snapshots>
                              <enabled>false</enabled>
                      </snapshots>
              </repository>
              <repository>
                      <id>snapshots</id>
                      <url>http://localhost:8080/artifactory/libs-snapshot</url>
                      <releases>
                              <enabled>false</enabled>
                      </releases>
              </repository>
      </repositories>
      <pluginRepositories>
              <pluginRepository>
                      <id>central</id>
                      <url>http://localhost:8080/artifactory/plugins-release</url>
                      <snapshots>
                              <enabled>false</enabled>
                      </snapshots>
              </pluginRepository>
              <pluginRepository>
                      <id>snapshots</id>
                      <url>http://localhost:8080/artifactory/plugins-snapshot</url>
                      <releases>
                              <enabled>false</enabled>
                      </releases>
              </pluginRepository>
      </pluginRepositories>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <distributionManagement>
<repository>
        <id>sademo</id>
        <name>sademo-releases</name>
        <url>http://localhost:8080/artifactory/ext-release-local</url>
    </repository>
    <snapshotRepository>
        <id>sademo</id>
        <name>sademo-snapshots</name>
        <url>http://localhost:8080/artifactory/ext-snapshot-local</url>
    </snapshotRepository>
</distributionManagement>
</project>

settings.xmlファイルは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0         http://maven.apache.org/xsd/settings-1.0.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <servers>
    <server>
      <username>admin</username>
      <password>password</password>
      <id>sademo</id>
</server>
    <server>
      <username>admin</username>
      <password>password</password>
      <id>sademo-releases</id>
    </server>
  </servers>
  <mirrors>
    <mirror>
      <mirrorOf>*</mirrorOf>
      <name>remote-repos</name>
      <url>http://localhost:8080/artifactory/remote-repos</url>
      <id>remote-repos</id>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <repositories>
        <repository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>sademo</id>
          <name>libs-release</name>
          <url>http://localhost:8080/artifactory/libs-release</url>
        </repository>
        <repository>
          <snapshots />
          <id>sademo-snapshots</id>
          <name>libs-snapshot</name>
          <url>http://localhost:8080/artifactory/libs-snapshot</url>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
          <id>central</id>
          <name>plugins-release</name>
          <url>http://localhost:8080/artifactory/plugins-release</url>
        </pluginRepository>
        <pluginRepository>
          <snapshots />
          <id>snapshots</id>
          <name>plugins-snapshot</name>
          <url>http://localhost:8080/artifactory/plugins-snapshot</url>
        </pluginRepository>
      </pluginRepositories>
      <id>artifactory</id>
    </profile>
  </profiles>
  <activeProfiles>
    <activeProfile>artifactory</activeProfile>
  </activeProfiles>
</settings>

「mvncleaninstall」を取得してjarをartifcatoryにアップロードする方法についてのアイデアはありますか?

4

1 に答える 1

11

Mavenで

mvn install

アーティファクトをリモートリポジトリではなくローカルリポジトリにインストールすることを目的としています。アーティファクトをリモートリポジトリにアップロードするには、次のように言う必要があります。

mvn deploy

mvn deployは、distributionManagementからのエントリを使用して、アーティファクトを指定されたリポジトリにアップロードします。

あなたの例では、pomにリポジトリの設定を含めるべきではありません。これは、settings.xmlファイルですでに設定されているためです。

それとは別に、構成が100%正しくないように見える場合は、次のメッセージを表示します。

Uploading: http://localhost:8080/artifactory/libs-release-local/com/mycompany/app/my-app/1.0-SNAPSHOT/my-app-1.0-20130202.014428-1.jar
Uploading: http://localhost:8080/artifactory/libs-release-local/com/mycompany/app/my-app/1.0-SNAPSHOT/my-app-1.0-20130202.014428-1.pom

アーティファクトが配置された場所を示します。この場合、libs-release-localですが、アーティファクトはSNAPSHOTのものであり、リリースではありません。

私は以下を変更すると言います:

<repository>
  <snapshots />
  <id>sademo-snapshots</id>
  <name>libs-snapshot</name>
  <url>http://localhost:8080/artifactory/libs-snapshot</url>
</repository>

の中へ:

<repository>
  <snapshots>
    <enabled>true</enabled>
  </snapshots>
  <id>sademo-snapshots</id>
  <name>libs-snapshot</name>
  <url>http://localhost:8080/artifactory/libs-snapshot</url>
</repository>
于 2013-02-02T08:27:13.067 に答える