Domanda

Per esempio, ho incluso nelle mie dipendenze JUnit-addons: JUnit-addons. Ma nel repository Maven non c'è alcun codice sorgente. E so che esiste (ho scaricato). Come posso modificare le dipendenze al fine di utilizzare le librerie dal mio progetto locale anziché dal repository Maven (vorrei omettere le JUnit-addons dal respository e utilizzare un JAR locale e il suo codice sorgente, invece).

Nota: io uso m2eclipse

.
È stato utile?

Soluzione

  

Come posso modificare le dipendenze al fine di utilizzare le librerie dal mio progetto locale anziché dal repository Maven

Non è possibile. Se un JAR fonti non è disponibile nel repository centrale, basta mettere i sorgenti da qualche parte nel file system in una cartella, JAR o zip (si potrebbe install:install-file un archivio fonti nel vostro repository locale, seguendo le convenzioni di Maven) e la configurazione Eclipse da usare li ( tasto destro del mouse sul JAR sotto Maven dipendenze nel Package Explorer , selezionare sorgente Java Allegato e impostare il Location percorso ).

Altri suggerimenti

Ho risolto il problema in un modo di procedere molto semplice:

Ho copiato nella cartella ${user.home}/.m2/repository/{group-name}/{artifactId}/{version}/ il file di origine seguente norma MAVEN: {artifactId}-{version}-sources.jar e funziona come un fascino! Eclipse controlla il repository locale e trova le fonti.

Non so se questo è il modo Maven, però.

Io uso la versione gratuita di repository Artifactory. Ho creato un file jar {artifactId} - {version} -sources.jar e caricato nel repository nello stesso gruppo-id come file jar binario. Poi nel mio pom ho aggiunto dipendenza:

<dependency>
            <groupId>mygroupid</groupId>
            <artifactId>artifact</artifactId>
            <version>1.0</version>
            <classifier>source</classifier>
        </dependency>

Nel corso Maven vaso fonte fase di costruzione è stato scaricato al mio repository locale. Io uso NetBeans 7.0 ed è gestito automaticamente tutto per me. Ad esempio, fate clic destro sul metodo e la scelta di andare toSource porta correttamente me di codice sorgente nel vaso.

È possibile utilizzare il installare file mojo per installare localmente artefatti nel tuo repository Maven locale. Se si desidera condividere questo manufatto con gli altri (dire la tua squadra o un'altra stazione di lavoro), è possibile utilizzare il proprio repository manager (ad esempio Nexus ) e configurarlo come uno specchio per qualsiasi repository, ad esempio, centrale. Nexus recupererà (e cache) manufatti da centrale. Inoltre, è possibile caricare praticamente qualsiasi manufatto (come fonti JUnit-addons) per l'installazione di Nexus.

Per fare configurare uno specchio, si dovrà modificare ${user.home}/.m2/settings.xml

<settings>
  <!-- SNIP -->
  <mirrors>
    <mirror>
      <id>nexus-releases</id>
      <mirrorOf>*</mirrorOf>
      <!-- replace nexus.example.com with the location of your nexus installation -->
      <url>http://nexus.example.com/releases</url>
    </mirror>
  </mirrors>
  <profiles>
    <profile>
      <id>nexus</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>false</enabled></snapshots>
        </repository>
      </repositories>
      <id>nexus</id>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>false</enabled></snapshots>
        </pluginRepository>
    </profile>
  </profiles>
</settings>

Dopo aver scaricato nella tua repository locale, si potrebbe fare una copia di esso. Dategli un nuovo artifactId (ad esempio LibraryName-myVersion) e aggiungere le dipendenze nel pom. Assicurati di modificare i nomi delle cartelle, i nomi, i nomi vaso POM e la stessa artifactId nel pom. Conservare tutto nel vostro repository locale. Ora è possibile utilizzare la versione hacked della vostra dipendenza.

Ma ad essere onesti, non lo faccio cosa questa è una buona idea per fare. , ma forse aiuta / non potrebbero essere evitati nel tuo caso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top