2013-01-10 12 views
13

Il componente principale del Stanford Natural Language Processing Toolkit ha codice Java in un file stanford-corenlp-1.3.4.jar, e ha (molto grande) file modello in un file separato stanford-corenlp-1.3.4-models.jar. Maven non scarica automaticamente i file del modello, ma solo se si aggiunge la riga <classifier>models</classifier> al file .pom. Ecco uno snippet di .pom che recupera sia il codice che i modelli.Maven dipendenza: ottenere non scaricare il modello Stanford NLP file

<dependency> 
     <groupId>edu.stanford.nlp</groupId> 
     <artifactId>stanford-corenlp</artifactId> 
     <version>1.3.4</version> 
     <classifier>models</classifier> 
    </dependency> 

Sto cercando di capire come fare la stessa cosa dalla riga di comando. Sembra che l'attività del plug-in Maven dependency:get sia il modo per farlo. La seguente riga di comando sembra che sarebbe corretto

mvn dependency:get \ 
    -DgroupId=edu.stanford.nlp \ 
    -DartifactId=stanford-corenlp \ 
    -Dversion=LATEST \ 
    -Dclassifier=models \ 
    -DrepoUrl=repo1.maven.org 

Tuttavia, scarica solo il file Jar codice, ma non il file Jar modelli.

Qualche idea del perché questo è il caso? Non sono sicuro se questo è solo un problema con il pacchetto PNL Stanford o un problema più generale con l'opzione classifier di dependency:get.

+0

Ciao Bill, non siamo esperti di esperti e potremmo fare qualcosa di sbagliato, ma, beh, non è ovvio per me cosa, e qualcun altro avrebbe bisogno di dirci cosa. –

+2

Chiunque usi Scala con SBT può usare questo: 'val stanfordNlp =" edu.stanford.nlp "%" stanford-corenlp "%" 1.3.4 "artefatti (Artefatto (" stanford-corenlp "," modelli "), Artefatto ("stanford-corenlp")) ' – tysonjh

risposta

4

Primo grazie per la tua domanda. Ha risposto alla mia domanda su come includere sia i dati che la lib. Io condividere quello che sto facendo con Maven, ma non sono sicuro che questa soddisfa la tua domanda:

<dependency> 
    <groupId>edu.stanford.nlp</groupId> 
    <artifactId>stanford-corenlp</artifactId> 
    <version>1.3.4</version> 
    <classifier>models</classifier> 
</dependency> 
<dependency> 
     <groupId>edu.stanford.nlp</groupId> 
     <artifactId>stanford-corenlp</artifactId> 
     <version>1.3.4</version> 
    </dependency> 
    <dependency> 
     <groupId>edu.stanford.nlp</groupId> 
     <artifactId>stanford-parser</artifactId> 
     <version>2.0.4</version> 
    </dependency> 

Inoltre, assicurarsi che il mio vaso include le librerie che uso:

<build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <configuration> 
     <archive> 
      <manifest> 
      <mainClass>org.example.nlpservice.NLP</mainClass> 
      </manifest> 
     </archive> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     </configuration> 
     <executions> 
     <execution> 
      <id>make-assembly</id> <!-- this is used for inheritance merges --> 
      <phase>package</phase> <!-- bind to the packaging phase --> 
      <goals> 
      <goal>single</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
    </build> 

Infine , hai provato mvn deploy o mvn install? È possibile copiare dalla cache/repo locale di mvn in una directory/lib.

+0

Esiste il pacchetto" fonti "? Ho provato le fonti , ma senza fortuna. –

Problemi correlati