2014-02-10 7 views
1

Я создаю oracle jdk 1.6 в rpm, используя maven и nexus из дистрибутива zip-файла jdk.Создание RPM, содержащего разрешение зависимостей JDK

Когда это сделано, число оборотов в минуту отказывается установить без следующих:

[[email protected]]# rpm -ivh oracle-jdk-1.6.0_26-1.noarch.rpm 
error: Failed dependencies: 
     libXt.so.6()(64bit) is needed by oracle-jdk-1.6.0_26-1.noarch 
     libodbc.so()(64bit) is needed by oracle-jdk-1.6.0_26-1.noarch 
     libodbcinst.so()(64bit) is needed by oracle-jdk-1.6.0_26-1.noarch 

Fine. Я предполагаю, что maven создал эту зависимость. Jdk в своей собственной распакованной форме отлично работает.

Как настроить мой pom, чтобы maven не разрешал эти зависимости?

Как настроить мой pom так, чтобы yum -y install установил недостающие библиотеки?

Я спрашиваю обоих, поскольку я не уверен, каким образом я буду качаться.

Edit: мой ПОМ:

<?xml version="1.0"?> 
<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>com.oracle</groupId> 
    <artifactId>jdk</artifactId> 
    <version>1.6.0_26</version> 
    <packaging>pom</packaging> 
    <properties> 
    <unix.user>root</unix.user> 
    <rpm.friendly.name>oracle-jdk</rpm.friendly.name> 
    <rpm.install.basedir>/usr/java/jdk/1.6.0_26</rpm.install.basedir> 
    <sourcefile.unzip.dir>${project.build.directory}/jdk1.6.0_26</sourcefile.unzip.dir> 
    <yum.repo.host>localhost</yum.repo.host> 
    <yum.repo.path>/apps/httpd/yumrepo</yum.repo.path> 
    </properties> 
    <dependencies> 
    <dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>jdk</artifactId> 
     <version>1.6.0_26</version> 
     <type>tar.gz</type> 
    </dependency> 
    </dependencies> 
    <distributionManagement> 
    <repository> 
     <id>ssh-repository</id> 
     <url>scpexe://${yum.repo.host}${yum.repo.path}</url> 
    </repository> 
    </distributionManagement> 
    <build> 
    <extensions> 
     <extension> 
     <groupId>org.apache.maven.wagon</groupId> 
     <artifactId>wagon-ssh-external</artifactId> 
     <version>1.0-beta-6</version> 
     </extension> 
    </extensions> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>rpm-maven-plugin</artifactId> 
     <version>2.1-alpha-3</version> 
     <executions> 
      <execution> 
      <id>generate-rpm</id> 
      <goals> 
       <goal>attached-rpm</goal> 
      </goals> 
      </execution> 
     </executions> 
     <configuration> 
      <name>${rpm.friendly.name}</name> 
      <copyright>2014, JM</copyright> 
      <group>Application/Internet</group> 
      <packager>JM</packager> 
      <needarch>false</needarch> 
      <changelogFile>src/changelog</changelogFile> 
      <mappings> 
      <mapping> 
       <directory>${rpm.install.basedir}</directory> 
       <username>${unix.user}</username> 
       <groupname>${unix.user}</groupname> 
       <sources> 
       <source> 
        <location>${sourcefile.unzip.dir}</location> 
       </source> 
       </sources> 
      </mapping> 
      </mappings> 
     </configuration> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-dependency-plugin</artifactId> 
     <version>2.4</version> 
     <executions> 
      <execution> 
      <id>unpack</id> 
      <phase>generate-resources</phase> 
      <goals> 
       <goal>unpack-dependencies</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>${project.build.directory}</outputDirectory> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    <repositories> 
    <repository> 
     <snapshots> 
     <enabled>true</enabled> 
     </snapshots> 
     <id>thirdparty</id> 
     <url>http://myrepo.com:8081/nexus/content/repositories/thirdparty</url> 
    </repository> 
    </repositories> 
</project> 
+0

Можете ли вы показать, что вы сделали до сих пор? – khmarbaise

+0

Я добавил мой pom на вопрос – Jepper

+0

Я пробовал **/db/* внутри в фазе генерации ресурсов. Нет радости. – Jepper

ответ

3

В принципе я думаю, что его не очень хорошая идея, чтобы включить другие исполняемые файлы (например, Java) в пакете
я предпочел бы иметь зависимость от них.

Но иногда вам приходится, например, у клиента уже есть Java на своей машине, но вы хотите запустить свою собственную версию Java и, таким образом, предоставить ее своим пакетом.

Для этого вы можете просто сказать, что плагин maven для автоматического добавления не требуется для этих пакетов.

как этот

<configuration> 
    ...... 
    <autoRequires>false</autoRequires> 
</configuration> 
Смежные вопросы