2014-12-16 2 views
1

Я получаю следующее сообщение об ошибке, когда я хочу запустить «MVN развернуть» в моем проекте:Проблемы с Maven

[INFO] --- maven-deploy-plugin:2.7:deploy (default-deploy) @ JImp --- 
[INFO] Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.jar 
[INFO] Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.jar (245 KB at 188.8 KB/sec) 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 17.973 s 
[INFO] Finished at: 2014-12-16T10:35:39+01:00 
[INFO] Final Memory: 24M/226M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project JImp: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

Мой 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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>JImp</groupId> 
    <artifactId>JImp</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <build> 
     <sourceDirectory>src</sourceDirectory> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>org.apache.xmlbeans</groupId> 
      <artifactId>xmlbeans</artifactId> 
      <version>2.6.0</version> 
     </dependency> 
     <dependency> 
      .... 
     </dependency> 
    </dependencies> 
</project> 

В моем проекте я я использую кучу jar-Files (например, SWT, Log4j и т. д., но также и собственные библиотеки). Но все они добавлены в мой локальный репозиторий (мои собственные библиотеки, добавленные mvn install: install-file ..) и в зависимости от моего POM .. В Eclipse мой проект «знает» все импортные, код выглядит хорошо, не содержит ошибок или что-то подобное ..

Если бы я только запустить

mvn package 

и затем выполняя свою баночку

java -cp target\JImp-0.0.1-SNAPSHOT.jar de.my.path.JImp 

он бросает ClassNotFoundException, потому что он не мог найти класс мой собственный lib .. Но эта lib добавляется в локальный репозиторий и к папке в моем POM-файле. :/

Возможно, вы могли бы мне помочь .. !!

Я очень ценю вашу помощь!

ответ

1

для mvn deploy вопрос

Вам необходимо предоставить адрес хранилища, где вы хотите развернуть вы arfifact в pom.xml, как показано ниже

<distributionManagement> 
    <repository> 
    <id>mycompany-repository</id> 
    <name>MyCompany Repository</name> 
    <url>your repository url</url> 
    </repository> 
</distributionManagement> 

Чтобы запустить Maven артефакта банку, вам нужно использовать команду mvn exec, то только он включает все банки, упомянутые в pom.xml в вашем пути к классам. Смотрите пример ниже

mvn exec:java -Dexec.mainClass="de.my.path.JImp" 
+0

я нашел: «Maven сначала пытается использовать локальную копию указанного артефакта Если артефакт не существует в локальном хранилище, он будет пытаться загрузить из удаленного хранилища» (http://maven.apache.org/pom.html#Repositories) Почему мне нужно определить репозиторий, когда я хочу использовать mvn deploy? – mrbela

+0

И достаточно ли вызывать пакет mvn или мне нужно запустить весь жизненный цикл по умолчанию (проверка, компиляция, тестирование, пакет, интеграция-тест, проверка, установка, развертывание) путем вызова mvn deploy – mrbela

+1

'mvn deploy' command привыкнуть загружать *** свой артефакт *** в удаленный репозиторий. Если вы просто хотите добавить в локальный репозиторий, тогда будет выполняться 'mvn install'. – Adi

Смежные вопросы