Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[maven] indeling 3rd party libs in repository *

Pagina: 1
Acties:

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 22:26
Binnen ons team willen wij binnenkort gebruik gaan maken van Maven. Inmiddels ben ik begonnen met het bouwen van pom's voor onze verschillende projecten die nog in ontwikkeling zijn.

Bij het indelen van de dependencies en het inrichten van de shared repository kom ik er niet helemaal uit. Er wordt namelijk gebruik gemaakt van enkele 3rd party libraries die niet in de centrale Maven repository staan. Deze zal ik dus zelf in onze shared repository moeten installeren.

Het installeren van deze libraries is op zich geen probleem (mvn install:install-file plugin), echter worden enkele frameworks in verschillende libraries geleverd. Hierbij weet ik niet zo goed hoe ik dit aan moet pakken. Ik kan deze libraries per stuk installeren, zodat ik in de pom's van mijn project een lijst van dependencies bijhoud. Maar het lijkt mij handiger dat ik in mijn pom maar 1 dependency toevoeg, en dat alle onderliggende libraries automatisch in mijn locale repository en classpath worden gegooid.

Hieronder een voorbeeld om het te verduidelijken:

Ik heb de volgende jars:
toplink.jar
toplink-oc4j.jar
antlr.jar

Ik wil dus een dependency toe kunnen voegen van bijvoorbeeld groupId=oracle.toplink en artifactId=toplink. Wat ik dan wil is dat niet alleen toplink.jar wordt opgehaald, maar ook de onderliggende jars toplink-oc4j.jar en antlr.jar.

Is er iemand die mij hier mee kan helpen?

Verwijderd

Zoals je dat bij elke jar doet, een deb naar een ander artifact aangeven...

  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 22:26
Verwijderd schreef op donderdag 04 oktober 2007 @ 11:38:
Zoals je dat bij elke jar doet, een deb naar een ander artifact aangeven...
Zoiets had ik inderdaad al geprobeerd, maar dit kreeg ik niet voor elkaar. De pom die naast de lib in de repository staat ziet er als volgt uit:

XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8"?>
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>oracle.toplink</groupId>
  <artifactId>toplink</artifactId>
  <version>10.1.3.1.0</version>
  <description>POM was created from install:install-file</description>

  <dependencies>
    <dependency>
      <groupId>oracle.toplink</groupId>
      <artifactId>toplink-oc4j</artifactId>
      <version>10.1.3.1.0</version>
    <dependency>
    <dependency>
      <groupId>antlr</groupId>
      <artifactId>antlr</artifactId>
      <version>2.7.7</version>
    </dependency>
  </dependencies>
</project>


Als ik in mijn project-pom de dependency opgeef met groupId=oracle.toplink en artifactId=toplink, dan haalt hij alleen de toplink-directory op, en niet de toplink-oc4j die in bovenstaand xml-file als dependency van toplink is gedefinieerd. Ook wordt antlr niet opgehaald.

[edit]
De artifact toplink-oc4j is overigens geinstalleerd in de repository, dus deze mist niet.

[ Voor 10% gewijzigd door JeroenTheStig op 04-10-2007 12:04 ]


  • JeroenTheStig
  • Registratie: Mei 2000
  • Laatst online: 22:26
Is er iemand die ziet wat ik verkeerd doe?

Verwijderd

Boktor schreef op vrijdag 05 oktober 2007 @ 12:43:
Is er iemand die ziet wat ik verkeerd doe?
Nee eerlijk gezegd niet. Het lijkt erop dat je aan alle voorwaarden hebt voldaan, dat wil zeggen, ik heb ook een aantal dergelijke debs en daar werkt alles prima.

edit:
Weet je zeker dat deze pom in je {user_home}/.m2/repository/... staat?

[ Voor 11% gewijzigd door Verwijderd op 05-10-2007 13:05 ]


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

En na het maken van de pom heb je ook install gedraaid op die pom?


Overigens, als je een dependency in een shared repo wil hebben, moet je geen install doen, maar deploy.

[ Voor 45% gewijzigd door JKVA op 05-10-2007 13:21 ]

Fat Pizza's pizza, they are big and they are cheezy

Pagina: 1