Maven ішіндегі «war» пакетінің түрі үшін плагинді қалай іске қосу керек?

Екі Maven жобасын ұсынды: J (jar), W (соғыс); екеуі де бір ата-анаға тәуелді (Pom). Ата-анада «В» жобасына тек қана жүгіретін плагин бар.

Мұны қалай істейді?

  • жеке басты жобаларды құрмай
  • профильді пайдаланбастан (демек, build mvn clean package арқылы орындалуы керек)

J (jar)


  
    P
  
  J
  jar

W (соғыс)


  
    P
  
  W
  war

P (пом)


  P
  pom

  
    
      
        org.apache.maven.plugins
        maven-jar-plugin
        
          
            package
            
              jar
            
            
              classes
            
          
        
      
    
  

5

3 жауаптар

Профильді белсендіру арқылы қол жеткізе аласыз деп ойлаймын. Ең дұрысы, активтендіру шарты « орау түрі соғыс » сияқты болуы мүмкін, бірақ бұл жағдайды Maven ішінде іске асыруға болмайды. Алайда сіздің жағдайыңызда мүмкін орындалуы мүмкін және бұл іс жүзінде іс жүзінде баламалы: src/main/webapp каталогы бар «.

Сіздің pom.xml сияқты келесідей болуы мүмкін:


    
        
            
                src/main/webapp
            
        
        
            [plugin configuration]
        
    

1
қосылды

Қысқа жауап: Maven сіз істеп жатқан нәрсені жасауға жақсы жолы жоқ сияқты. Мен осындай проблеманы шешуге тырысып, қанағаттанарлық ештеңе таппадым.

Сіз ықтимал шешімдердің екеуін таптыңыз: соғыстар үшін қосымша ата-аналық поманы енгізу (мүмкін, қосымша түйме түпнұсқа ата-анасын кеңейтеді, осылайша сіз оның барлық теңшелімдерін қайталамауға тура келмейді) немесе бананның плагинінің конфигурациясын қайталаңыз барлық соғыс помалары. Сіз айтып кеткендей, олардың ешқайсысы да мінсіз.

Another possibility is to use the maven-assembly-plugin instead of the jar plugin to build the classified jar for the war projects. The assembly plugin is not included in the default lifecycles for either jar or war packaging, so you could configure it in the parent's section and then only reference it in the war projects as Raghuram described. If you need a custom assembly descriptor you will probably want to follow the sharing the assembly descriptors example.

0
қосылды
<�Р>One way to do this would be to Рlace the Рlugin in the Рarent Рom within <�РluginManagement> section. Thereafter sРecify the Рlugin in the РroJ.ect(s) that you want it to run. </Р> <�Р>Сіздің жағдайда, жобаның J. плагинін көрсетпейсіз, W.</Р> <�Р>Р</Р> <�Рre> ... <�РluginManagement> <�Рlugins> <�Рlugin> ... ... ... other Рlugin details ... </Рlugin> </Рlugins> </РluginManagement> ... </Рre> <�Р>J.</Р> <�Рre> ... <�Рlugins> <�Рlugin> ... ... <�Рlugin> </Рlugins> ... </Рre>
0
қосылды
Менің ойымша, бұл жұмыс істейтініне сенбеймін, өйткені maven-jar-плагині «J» жобасында толық орындалады (бұл банкке негізделген жоба).
қосылды автор Yuriy Nemtsov, көзі
Жауап беру үшін рахмет. Сұрақ бойынша, мен плагин «W» жобасына ғана жүгіне алады деп сұрадым.
қосылды автор Yuriy Nemtsov, көзі
Мен «J» канал жобасына арналған «maven-jar-plugin» және «W» жобасына қатысқым келеді. Жалғыз айырмашылығы - «W» жобасы үшін қосымша бекітілген («классификатор») банка жасауды қалаймын. Енді, мен қазірдің өзінде maven-jar-plugin конфигурациясын «W» жобасына тікелей қосу арқылы жасай аламын; бірақ менің 20 «W» жобаларым болғандықтан, бұл қайталанатын конфигура көп. Сипаттамада айтылғандай, мен соғыс және банк жобалары үшін жеке ата-аналарды құрғым келмейді.
қосылды автор Yuriy Nemtsov, көзі
@ ЮрийНемцов. a plugin іске қосу жолын сұрадыңыз. Дұрыс жауап алу үшін нақты сұрақ қойыңыз. Менің жауапым жалпы қолданылады.
қосылды автор Raghuram, көзі
@ ЮрийНемстов. jar жобасы үшін maven jar плагинін іске қосқыңыз келмесе, жобаның түрін pom деп өзгертуге болады.
қосылды автор Raghuram, көзі