আমার প্রকল্পের একটি পম প্যারেন্ট ফাইলে আমার কাছে এমন একটি প্রোফাইল রয়েছে যা এই প্রকল্পের জন্য দরকারী কিছু কনফিগারেশন সংজ্ঞায়িত করে (যাতে আমি এই প্যারেন্ট POM থেকে মুক্তি পেতে পারি না):
<profile>
<id>wls7</id>
...
<build>
<plugins>
<!-- use java 1.4 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<fork>true</fork>
<source>1.4</source>
<target>1.4</target>
<meminitial>128m</meminitial>
<maxmem>1024m</maxmem>
<executable>%${jdk14.executable}</executable>
</configuration>
</plugin>
</plugins>
</build>
...
</profile>
তবে আমার প্রকল্পে আমি টেস্ট-ক্লাস সংকলনের জন্য jdk4 এর পরিবর্তে jdk5 ব্যবহার করার জন্য মাভেন-কম্পাইলার-প্লাগইন কনফিগারেশনকে ওভাররাইড করতে চাই।
এই কারণেই আমি আমার প্রকল্পের পিওএম-এ এই বিভাগটি করেছি:
<profiles>
<profile>
<id>wls7</id>
<activation>
<property>
<name>jdk</name>
<value>4</value>
</property>
</activation>
<build>
<directory>target-1.4</directory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>my-testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<fork>true</fork>
<executable>${jdk15.executable}</executable>
<compilerVersion>1.5</compilerVersion>
<source>1.5</source>
<target>1.5</target>
<verbose>true</verbose>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
...
</profiles>
এবং এটি কাজ করছে না ...
এমনকি আমি আমার পিওএমের নিয়মিত প্লাগইন বিভাগে কনফিগারেশনটি ওভাররাইড করার চেষ্টা করেছি (আমি বোঝাতে চাইছি একটি নির্দিষ্ট প্রোফাইলের জন্য নয় তবে আমার পুরো পোমের জন্য)।
কি সমস্যা হতে পারে ?
আমার কিছু প্রয়োজনীয়তা পরিষ্কার করতে:
- আমি প্যারেন্ট পিওএম এবং এর ভিতরে সংজ্ঞায়িত প্রোফাইল (ডাব্লুএলএস 7) থেকে মুক্তি পেতে চাই না (যেহেতু আমার অনেকগুলি এবং অনেক সম্পত্তি, কনফিগারেশন, ... প্রয়োজন) এবং এটি আমার সংস্থার প্রক্রিয়া নয়।
- প্যারেন্ট POM এবং / অথবা এর ভিতরে সংজ্ঞায়িত প্রোফাইলের সদৃশ করার ভিত্তিতে একটি সমাধান ভাল নয়। যেহেতু
প্যারেন্ট পুমের দায়িত্বশীলরা যদি কিছু পরিবর্তন করেন তবে আমাকে
এটি আমার কাছে রিপোর্ট করতে হবে।
এটি কেবলমাত্র উত্তরাধিকারের বিষয় (কোনও প্রোফাইল প্রসারিত বা ওভাররাইড করুন, একটি উচ্চ স্তরের POM থেকে একটি কনফিগারেশন) সুতরাং আমি মনে করি মাভেন 2 এর মাধ্যমে এটি সম্ভব হওয়া উচিত।