2012-03-14 8 views
11

Necesito usar el artefacto X que no tiene artefactos fuente ni javadoc disponibles. Sé, sin embargo, un servidor web externo donde el javadoc para X ha sido publicitado.¿Cómo hacer alusión a m2e (plugin Maven para eclipse) para adjuntar el sitio web javadoc externo a artefacto?

En "normal" Eclipse puedo adjuntar una URL como el Javadoc de localización de un frasco en la trayectoria de la estructura, y luego Shift - F2 abre un navegador a esa URL.

Me gustaría que m2e haga lo mismo automáticamente para el artefacto X sin cambiar los artefactos de Maven Central.

pom.xml Muestra que muestra esto:

<?xml version="1.0" encoding="UTF-8"?> 
<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>foo</groupId> 
    <artifactId>m2e-javadoc</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <properties> 
     <project.build.sourceEncoding>ASCII</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>net.sf.jt400</groupId> 
      <artifactId>jt400-full</artifactId> 
      <version>5.0</version> 
     </dependency> 
    </dependencies> 

</project> 

¿Cómo insinuar esto?


EDIT: pregunta se ha hecho en la lista de correo M2e en http://dev.eclipse.org/mhonarc/lists/m2e-users/msg02386.html


EDIT: Después de algunos experimentos instalación de artefactos perdidos en el repositorio local y renunciar a tener el proyecto de hacer un comunicado de Maven, lo reenvasado la última versión (7.10) a Maven Central.

+0

Cuando dices 'none source or javadoc available', ¿quieres decir que en maven central ni el javadoc ni las fuentes están disponibles, o que las fuentes o javadoc no están en el repositorio local? Si las fuentes están en el repositorio local, maven las reconoce automáticamente. –

+0

@MatthewFarwell No en el centro y no localmente. Esto ocurre con tanta frecuencia, especialmente en proyectos antiguos que no están mavenizados, pero el resultado se envía a Central, que se necesita una solución simple dentro de nuestro repositorio de origen. –

Respuesta

2

Desafortunadamente no funcionará si el creador no creó los artefactos apropiados (-sources y -javadoc) para el artefacto particular. Pero deberías poder agregar manualmente el javadoc para un artefacto particular. Sugeriría crear un paquete separado (artifact-javadoc) y desplegarlo en su administrador de repositorio de lo que debería funcionar automáticamente.

+0

Esto es exactamente lo que no quiero hacer. Si puedo configurar m2e para buscar en otro lado, eso estará bien. –

+1

Sé que esta respuesta no es lo que OP quiere hacer, pero IMO es la respuesta correcta, ya que usará la capacidad de control de versiones de Maven para mantener sincronizados el artefacto JAR y el javadoc/fuente. De lo contrario, puede usar v2.0.0 para el JAR y observar v2.1.0 Javadoc/Source. Creo que un script para hacer Javadoc JAR desde un sitio web publicitado podría ser útil ... – HDave

2

Puede utilizar el Maven Javadoc Plugin para this scenario mediante el aumento de su POM:

Se podría añadir enlaces de referencias cruzadas a proyectos externos utilizando los parámetros . Por ejemplo:

<project> 
    ... 
    <reporting> (or <build>) 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-javadoc-plugin</artifactId> 
     <version>2.8.1</version> 
     <configuration> 
      <links> 
      <link>http://commons.apache.org/dbcp/apidocs/</link> 
      <link>http://commons.apache.org/fileupload/apidocs/</link> 
      </links> 
      ... 
     </configuration> 
     </plugin> 
    </plugins> 
    </reporting> (or </build>) 
    ... 
</project> 

Nota importante: según las especificaciones Javadoc, todos los enlaces que figuran debe tener un archivo/paquete de lista fetchable.

Esta estrategia se puede aumentar aún más utilizando el parámetro <offlineLinks/> y la aggregate goal para consolidar la documentación en el mismo árbol documentación según se desee.

El documentation for Maven Javadoc Plugin proporciona escenarios adicionales y ejemplos que implican instalaciones alternativas de Javadoc, en caso de que desee seguirlos también.

+0

Una prueba rápida no indicó que m2e recogiera esta sugerencia. Shift-F2 todavía dice que el jar no tiene adjunto javadoc. ¿Has probado esto? –

+0

@ ThorbjørnRavnAndersen Tengo. Por lo que entiendo, necesitarás ejecutar el objetivo de Maven 'javadoc: javadoc' o' javadoc: aggregate' al menos una vez en el terminal, y establecer el _Javadoc Location_ de tu proyecto en la documentación generada ('$ PROJECT/target/site/apidocs') para hacer que esto funcione. Es molesto, pero que yo sepa, el plugin Maven Javadoc es la forma estándar de Mavenized para hacer esto. – MrGomez

+0

El método sugerido permite fusionarse en javadoc externo en el suyo, pero no en lo que realmente necesito. –

Cuestiones relacionadas