2012-12-06 40 views
7

Github zaleca, aby pliki w formacie Markdown, takie jak README.md, LICENCE.md lub CONTRIBUTORS.md zostały utworzone w katalogu głównym projektu. Z drugiej strony pliki te byłyby cenną treścią dla automatycznie generowanych stron internetowych.Jak dodać pliki do oznaczania Github do witryny maven

Jaki byłby najlepszy sposób uwzględnienia tych plików w wygenerowanym raporcie witryny?

Jednym z pomysłów, które miałem, było skopiowanie ich do src/site/markdown i usunięcie ich ponownie po pomyślnym wygenerowaniu strony (aby uniknąć zanieczyszczenia SCM).

+1

Jeśli używasz git, możesz dodać skopiowane pliki do pliku .gitignore, aby zapobiec dodawaniu tych plików do drzewa źródłowego. Przypuszczam, że inne VCS mają podobne mechanizmy. –

Odpowiedz

0

Dawcy należy umieścić w pom. Plik licencji powinien być częścią projektu zwykle LICENSE.txt jako plik rodzeństwa do pliku pom.xml, jak sugerował Apache. Plik README.txt jest również sugerowany przez Apache. README.md jest zwykle cenne tylko dla GitHub, aby renderować to podczas wyświetlania repozytorium.

+1

Jestem świadomy konwencji maven. Chcę tylko uniknąć podwójnych kopii istotnych informacji, stosując się do zasady DRY (nie powtarzaj się). – Hakan

3

I rozwiązać ten problem dla pliku README.md w repozytorium Git stosując metodę opisaną pan w swoim pytaniu, że kopiuje README.md z katalogu głównego do ${baseDir}/src/site/markdown. Użyłem maven-resources-plugin, aby skopiować plik. Zamiast usuwać skopiowany plik po wygenerowaniu witryny (aby uniknąć zanieczyszczenia SCM), dodałem ją do .gitignore jako Bruno suggested.

Poniżej znajduje się szczegółowy opis rozwiązania.

W sekcji project.build.plugins z pom.xml:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-resources-plugin</artifactId> 
    <executions> 
     <execution> 
      <!-- Copy the readme file to the site source files so that a page is generated from it. --> 
      <id>copy-readme</id> 
      <phase>pre-site</phase> 
      <goals> 
       <goal>copy-resources</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>${basedir}/src/site/markdown</outputDirectory> 
       <resources> 
        <resource> 
         <directory>${basedir}</directory> 
         <includes> 
          <include>README.md</include> 
         </includes> 
        </resource> 
       </resources> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

W .gitignore:

# Copied from root to site source files by maven-resources-plugin 
/src/site/markdown/README.md 

Można zobaczyć odpowiednią popełnić here.