जवाबों:
आप बिल्ड-हेल्पर के साथ एक नया स्रोत निर्देशिका जोड़ सकते हैं:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/generated</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
plugin
तत्व में है /project/build/plugins
और नहीं में/project/build/pluginManagement/plugins
m2e connector for build-helper-maven-plugin
pom.xml में त्रुटि को दूर करने के लिए ग्रहण बाज़ार से स्थापित करना चाह सकते हैं
'build.plugins.plugin.version' for org.codehaus.mojo:build-helper-maven-plugin is missing
आपको <plugin>
टैग के भीतर जोड़ने की आवश्यकता है<version>1.12</version>
मैं भोलेपन से इसे इस प्रकार करता हूं:
<build>
<finalName>osmwse</finalName>
<sourceDirectory>src/main/java, src/interfaces, src/services</sourceDirectory>
</build>
इसने मेरे लिए काम किया
<build>
<sourceDirectory>.</sourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<includes>
<include>src/main/java/**/*.java</include>
<include>src/main2/java/**/*.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
sourceDirectory
- और संभवतः अतिरिक्त sources
- स्रोत फ़ाइलों की जड़ों के रूप में। आपके समाधान में, maven-compiler-plugin
इन वास्तविक जड़ों से अवगत एकमात्र प्लगइन है।
इसे इंटेलीजे में काम करने के लिए, आप भी जोड़ सकते हैं
<generatedSourcesDirectory>src/main/generated</generatedSourcesDirectory>
maven- संकलक-प्लगइन के लिए
यह संसाधन टैग को परिभाषित करके मावेन के साथ भी काम करता है। आप अपने src फोल्डर के नाम जो भी चाहें पसंद कर सकते हैं।
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.java</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.java</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/generated</directory>
<includes>
<include>**/*.java</include>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
Resources are not (usually) code. They are not compiled
इसने मावेन 3.5.4 के साथ काम किया और अब Intellij Idea इस कोड को स्रोत के रूप में देखते हैं:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<generatedSourcesDirectory>src/main/generated</generatedSourcesDirectory>
</configuration>
</plugin>
पोस्ट से बिल्ड-हेल्पर-मावेन-प्लगइन का उपयोग किया - और src / main / generate किया। और mvan क्लीन कंपाइल मेरे ../common/src/main/java, या on ../common पर काम करता है, इसलिए बाद में रखा गया। फिर, यह पुष्टि करते हुए कि संकलन के IntelliJ IDEA (10.5.2.2) स्तर डेविड फिलिप्स के रूप में उल्लेख किया गया था। मुद्दा यह था कि IDEA ने परियोजना में कोई अन्य स्रोत रूट नहीं जोड़ा था। इसे मैन्युअल रूप से जोड़ने से समस्या हल हो गई। यह अच्छा नहीं है क्योंकि प्रोजेक्ट में कुछ भी एडिटिंग मावेन से होनी चाहिए न कि आइडिया के प्रोजेक्ट ऑप्शंस के डायरेक्ट एडिटिंग से। फिर भी मैं इसके साथ तभी तक रह पाऊंगा जब तक वे बिल्ड-हेल्पर-मावेन-प्लगइन का सीधे समर्थन नहीं करते हैं, जैसे कि यह स्रोतों को ऑटो करेगा।
हालांकि इस काम को करने के लिए एक और समाधान की आवश्यकता है। चूंकि हर बार एक बदलाव के बाद IDEA ने मावेन सेटिंग्स को फिर से इम्पोर्ट किया था, इसलिए मुझे नए जोड़े गए स्रोत को मॉड्यूल पर रखा गया था, फिर भी यह खो गया यह सोर्स फोल्डर्स सेलेक्शन था और बेकार था। तो IDEA के लिए - इन्हें एक बार सेट करने की आवश्यकता है:
अब आयात पर उन फ़ोल्डरों को रखना दुनिया में सबसे अच्छा अभ्यास नहीं है, ..., लेकिन यह एक कोशिश दे रहा है।
जबकि evokk से उत्तर मूल रूप से सही है, यह परीक्षण कक्षाएं गायब हैं । आपको लक्ष्य ऐड-टेस्ट-स्रोत के साथ परीक्षण कक्षाएं जोड़ना होगा :
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>target/generated/some-test-classes</source>
</sources>
</configuration>
</execution>
यह दो चरणों में किया जा सकता है:
${build.directory}
यदि आप जेट्टी ( jetty:run
) शुरू करने के साथ काम करते हैं , तो किसी भी मॉड्यूल में किसी भी वर्ग के पुनर्मूल्यांकन (मावेन, आईडीईए या ग्रहण के साथ) जेटी के पुनरारंभ को बढ़ावा देगा। एक ही व्यवहार आपको संशोधित संसाधनों के लिए मिलेगा।
कॉन्फ़िगरेशन में, आप उपयोग कर सकते हैं <compileSourceRoots>
।
oal: org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-cli)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<basedir default-value="${basedir}"/>
<buildDirectory default-value="${project.build.directory}"/>
<compilePath default-value="${project.compileClasspathElements}"/>
<compileSourceRoots default-value="${project.compileSourceRoots}"/>
<compilerId default-value="javac">${maven.compiler.compilerId}</compilerId>
<compilerReuseStrategy default-value="${reuseCreated}">${maven.compiler.compilerReuseStrategy}</compilerReuseStrategy>
<compilerVersion>${maven.compiler.compilerVersion}</compilerVersion>
<debug default-value="true">${maven.compiler.debug}</debug>
<debuglevel>${maven.compiler.debuglevel}</debuglevel>
<encoding default-value="${project.build.sourceEncoding}">${encoding}</encoding>
<executable>${maven.compiler.executable}</executable>
<failOnError default-value="true">${maven.compiler.failOnError}</failOnError>
<failOnWarning default-value="false">${maven.compiler.failOnWarning}</failOnWarning>
<forceJavacCompilerUse default-value="false">${maven.compiler.forceJavacCompilerUse}</forceJavacCompilerUse>
<fork default-value="false">${maven.compiler.fork}</fork>
<generatedSourcesDirectory default-value="${project.build.directory}/generated-sources/annotations"/>
<maxmem>${maven.compiler.maxmem}</maxmem>
<meminitial>${maven.compiler.meminitial}</meminitial>
<mojoExecution default-value="${mojoExecution}"/>
<optimize default-value="false">${maven.compiler.optimize}</optimize>
<outputDirectory default-value="${project.build.outputDirectory}"/>
<parameters default-value="false">${maven.compiler.parameters}</parameters>
<project default-value="${project}"/>
<projectArtifact default-value="${project.artifact}"/>
<release>${maven.compiler.release}</release>
<session default-value="${session}"/>
<showDeprecation default-value="false">${maven.compiler.showDeprecation}</showDeprecation>
<showWarnings default-value="false">${maven.compiler.showWarnings}</showWarnings>
<skipMain>${maven.main.skip}</skipMain>
<skipMultiThreadWarning default-value="false">${maven.compiler.skipMultiThreadWarning}</skipMultiThreadWarning>
<source default-value="1.6">${maven.compiler.source}</source>
<staleMillis default-value="0">${lastModGranularityMs}</staleMillis>
<target default-value="1.6">${maven.compiler.target}</target>
<useIncrementalCompilation default-value="true">${maven.compiler.useIncrementalCompilation}</useIncrementalCompilation>
<verbose default-value="false">${maven.compiler.verbose}</verbose>
</configuration>
ये सभी संकलक प्लगइन के 3.8.1 संस्करण के लिए उपलब्ध विन्यास हैं। अलग-अलग संस्करणों में अलग-अलग कॉन्फ़िगरेशन होते हैं जिन्हें आप -X
सामान्य मावन कमांड के बाद अपना कोड चलाकर पा सकते हैं । पसंद
mvn clean install -X
mvn compiler:compile -X
और आईडी या लक्ष्य या प्लगइन नाम के साथ खोज करें। यह अन्य प्लगइन्स के साथ भी मदद कर सकता है। ग्रहण, intelliJ सुझाव के रूप में सभी विन्यास नहीं दिखा सकता है।