2015-08-13 2 views
1

У меня есть java-файлы для gcm-сервера в java. Я хотел бы объединить их в файл jar. Я пытаюсь сделать это в maven (только обучение), но я получаю следующую ошибку. структура директории:POM для org.jivesoftware: smack: jar: отсутствует 3.4.1-0cec571

--src 
| --main 
| --java 
|  --server 
|  "my java files here" 
--pom.xml 

Ошибка:

The POM for org.jivesoftware:smack:jar:3.4.1-0cec571 is missing, no dependency information available 

pom.xml используется:

<?xml version="1.0" encoding="UTF-8"?> 
<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>gcm.server</groupId> 
    <artifactId>gcm-maven</artifactId> 
    <packaging>jar</packaging> 
    <version>0.1.0</version> 

    <!-- tag::joda[] --> 
    <properties> 
     <java.version>1.7</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>com.googlecode.json-simple</groupId> 
      <artifactId>json-simple</artifactId> 
      <version>1.1.1</version> 
     </dependency> 

     <dependency> 
      <groupId>org.jivesoftware</groupId> 
      <artifactId>smack</artifactId> 
      <version>3.4.1-0cec571</version> 
     </dependency> 

    </dependencies> 

    <!-- end::joda[] --> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>2.1</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
         <configuration> 
          <transformers> 
           <transformer 
            implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
            <mainClass>hello.HelloWorld</mainClass> 
           </transformer> 
          </transformers> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Любые идеи по решению этого?

ответ

0

Try замена:

<dependency> 
     <groupId>org.jivesoftware</groupId> 
     <artifactId>smack</artifactId> 
     <version>3.4.1-0cec571</version> 
    </dependency> 

с:

<dependency> 
    <groupId>org.igniterealtime.smack</groupId> 
    <artifactId>smack-core</artifactId> 
    <version>4.1.3</version> 
</dependency> 

Согласно http://mvnrepository.com/artifact/jivesoftware/smack артефакт был перемещен. Похоже, что artifactId также изменил форму smack на smack-core и друзей.

+0

Не удалось найти артефакт org.igniterealtime.smack: smack: jar: 3.4.1 в центре (http://repo.maven.apache.org/maven2). Но если я использую 3.2.1, он работает хорошо. –

+0

Ах, да, извините, я думал, что поставлю 3.4.1 на Maven Central. Вы должны использовать последнюю стабильную версию Smack, которая на момент написания 4.1.3. * & Не используйте Smack версию <4.0 **, поскольку [у этих версий есть некоторые проблемы с безопасностью.] (Https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-0363). И если вы действительно должны использовать версию <4.0, то не используйте 3.2.1, так как она довольно старая (~ 5 лет), вместо этого включите банку Smack 3.4.1 в ваш проект. – Flow

+0

Отредактировано снова, чтобы указать 4.1.3, но также и изменить artifactId от smack до smack-core. – WillShackleford

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