2009-09-07 15 views
5

Qual è il modo migliore per inserire il codice javascript/html/css nel repository maven, in modo che sia facilmente utilizzabile dai progetti java.: come ospitare il codice lato server nel repository Maven

C'è un modo per farlo in modo che il progetto incluso possa essere reso facilmente "visibile sul web" dal progetto incluso?

Per esempio assumere scrivo un utilissimo tricks.js depositare una metterlo nel repository mvn.

E 'possibile creare un progetto web che aggiunge tricks.js come una dipendenza e poi fare

<script src="/some/thing/tricks.js"/> 

fa sì che il file di tricks.js per essere servito?

risposta

6

Le risorse esterne devono essere impacchettate in un artefatto e pubblicate nel repository (per semplicità usa un artefatto del vaso, ma puoi specificare un assembly per creare un file zip per chiarire a cosa serve l'artefatto). Lo maven-dependency-plugin decomprime il contenuto del barattolo in una posizione specifica nel progetto di guerra. Quella cartella viene quindi specificata come directory external web resources per il plugin maven-war.

La seguente configurazione si decomprimere il contenuto del my-resources nella directory target/external-resources, quindi includere il contenuto di tale cartella nella guerra come se fossero stati definiti in src/main/risorse.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>unpack</id> 
     <phase>generate-resources</phase> 
     <goals> 
     <goal>unpack</goal> 
     </goals> 
     <configuration> 
     <artifactItems> 
      <artifactItem> 
      <groupId>name.seller.rich</groupId> 
      <artifactId>my-resources</artifactId> 
      <version>1.0.0</version> 
      <type>jar</type> 
      <overWrite>false</overWrite> 
      </artifactItem> 
     </artifactItems> 
     <outputDirectory>${project.build.directory}/external-resources</outputDirectory> 
     <overWriteReleases>false</overWriteReleases> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-war-plugin</artifactId> 
    <version>2.0</version> 
    <configuration> 
    <webResources> 
     <resource> 
     <directory>${project.build.directory}/external-resources</directory> 
     </resource> 
    </webResources> 
    </configuration> 
</plugin> 
2

potete imballare in barattolo e poi scompattarlo da Maven plugin.

+0

Sì, questa è la migliore pratica. – SingleShot

+0

Io uso questa pratica con GWT. – merin

+0

Anche se non ho mai avuto bisogno di farlo da solo, questo sembra l'approccio migliore con l'architettura e gli standard di Maven. – aperkins

Problemi correlati