2016-10-02 2 views
-1

Попытка понять поток maven. Предложите создать папку под названием «my-source» и скопировать несколько файлов в одну папку.хочу другую структуру проекта maven

И я хочу создать zip-файл maven, который должен содержать папку «my-source» и ее содержимое. Как я это делаю? Где бы ни ссылались статьи, я вижу только примеры проектов java project/folder.

Кроме того, я видел справочный каталог/outputdirectory. Не знаете, где я могу изменить эти значения, как я couldnot найти местоположение effectivepom

Поэтому, пожалуйста, дайте мне процесс, чтобы выполнить мое требование

+0

Если вы пытаетесь понять Maven, первое и самое главное - понять основную концепцию. «Конвенция по конфигурации», которая означает следующие значения по умолчанию и не пытайтесь изменить их, только если у вас действительно действительно хорошая причина, по которой я сомневаюсь. Можете ли вы показать структуру папок вашего проекта? – khmarbaise

+0

да, я согласен, maven следует за конфигурацией. Но просто хотел знать, может ли maven построить проект без java, где структура папок отличается от Java (Невозможно добавить изображение структуры проекта здесь) – rajesh

+0

Структура проекта проста. там будет папка «projectA», и у нее будет папка «mysource», а также pom.xml Примечание: в папке mysource будет несколько файлов (например, sql, html ... и т. д.). После завершения сборки я должен получить целевую папку в projectA, которая должна содержать zip всех файлов. – rajesh

ответ

0

Для того, чтобы создать почтовый файл со всеми вашими содержимым вам придется использовать maven в вашем pom.xml. Кроме того, вам понадобится еще один файл (скажем, bin.xml), в котором будут указаны все файлы, которые вы хотите упаковать в zip. Плагин сборки в pom.xml просто укажет на файл bin.xml.
См. Пример кода для pom.xml ниже.

<?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>com.abc</groupId> 
    <artifactId>xyz</artifactId> 
    <version>3.1.3</version> 

    <build> 
     <plugins> 
      <plugin> <!-- Create a zip file with the contents you want deployed --> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>2.5.5</version> 
       <configuration> 
        <descriptors> 
         <descriptor>src/assembly/bin.xml</descriptor> // very important. This is where we will tell where our bin.xml is located 
        </descriptors> 
        <appendAssemblyId>false</appendAssemblyId> 
       </configuration> 
       <executions> 
        <execution> 
         <id>make-assembly</id> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 

     </plugins> 
    </build> 
</project> 

Теперь создайте структуру папок, такую ​​как src/assembly, и добавьте файл с именем bin.xml. Ниже приведен пример кода, который должен находиться внутри bin.xml.

<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd"> 
    <id>distrib</id> 
    <formats> 
     <format>zip</format> 
    </formats> 
    <includeBaseDirectory>false</includeBaseDirectory> 
    <fileSets> 
     <fileSet> 
      <directory>${project.basedir}/my-source</directory> // the folder that you want to the packaged in the zip file 
      <outputDirectory>/</outputDirectory> // the location within the zip file where your folder should be copied. In this case it will place the my-source directory at the root level of the zip file. 
      <useDefaultExcludes>true</useDefaultExcludes> 
     </fileSet> 
    </fileSets> 
</assembly> 
Смежные вопросы