This is an automated email from the ASF dual-hosted git repository. rec pushed a commit to branch bugfix/300-Differences-between-source-ZIP-and-repository-tag in repository https://gitbox.apache.org/repos/asf/uima-uimaj.git
commit 3356dfdefba361025fbe35975e289f1652d0bb4f Author: Richard Eckart de Castilho <[email protected]> AuthorDate: Wed Jan 25 17:03:26 2023 +0100 Issue #300: Differences between source ZIP and repository tag - Use our own src.xml assembly descriptor again because we need to fine-tune a few things --- src/main/assembly/bin.xml | 2 - src/main/assembly/src.xml | 410 ++++++++++------------------------------------ uimaj-parent/pom.xml | 32 ++++ 3 files changed, 116 insertions(+), 328 deletions(-) diff --git a/src/main/assembly/bin.xml b/src/main/assembly/bin.xml index 5230678f8..1f2e7ef7d 100644 --- a/src/main/assembly/bin.xml +++ b/src/main/assembly/bin.xml @@ -20,8 +20,6 @@ under the License. <assembly> <id>bin</id> <formats> - <format>tar.gz</format> - <!--format>tar.bz2</format--> <!-- to speed up builds --> <format>zip</format> </formats> diff --git a/src/main/assembly/src.xml b/src/main/assembly/src.xml index 15c144eb4..82ada158b 100644 --- a/src/main/assembly/src.xml +++ b/src/main/assembly/src.xml @@ -16,348 +16,106 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> - -<!-- NOTE: This is no longer used as of 2.3.1 10/2010 - Instead, source distributions are built using the - standard source-release assembly mechanism of - Apache common super pom --> - <assembly> - <id>src</id> + <id>source-release</id> <formats> - <format>tar.gz</format> - <!--format>tar.bz2</format--> <!-- to speed up builds --> <format>zip</format> </formats> - <includeBaseDirectory>true</includeBaseDirectory> - - <!-- project copying for this project, paying attention to - fileMode settings - mostly readonly for owner/group/other, - but executable for executables --> - + <!-- + This adapted from + https://svn.apache.org/repos/asf/maven/resources/tags/apache-source-release-assembly-descriptor-1.0.6/src/main/resources/assemblies/source-shared.xml + --> + <fileSets> - <!-- Leave out .sh/.bat/.cmd files, include them in the next step as executable --> + <!-- main project directory structure --> <fileSet> <directory>.</directory> - <outputDirectory/> - <includes> - <include>src/**</include> - <include>pom.xml</include> - </includes> - <excludes> - <exclude>src/**/*.sh</exclude> + <outputDirectory></outputDirectory> + <useDefaultExcludes>true</useDefaultExcludes> + <excludes> + <!-- build output --> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/).*${project.build.directory}.*]</exclude> + + <!-- NOTE: Most of the following excludes should not be required + if the standard release process is followed. This is because the + release plugin checks out project sources into a location like + target/checkout, then runs the build from there. The result is + a source-release archive that comes from a pretty clean directory + structure. + + HOWEVER, if the release plugin is configured to run extra goals + or generate a project website, it's definitely possible that some + of these files will be present. So, it's safer to exclude them. + --> + + <!-- IDEs --> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?maven-eclipse\.xml]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.project]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.classpath]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.factorypath]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iws]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.idea(/.*)?]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?out(/.*)?]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.ipr]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iml]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.settings(/.*)?]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.apt_generated(/.*)?]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.apt_generated_tests(/.*)?]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.externalToolBuilders(/.*)?]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.deployables(/.*)?]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.wtpmodules(/.*)?]</exclude> + + <!-- misc --> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?cobertura\.ser]</exclude> + + <!-- release-plugin temp files --> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?pom\.xml\.releaseBackup]</exclude> + <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?release\.properties]</exclude> + + <!-- UIMA-specific --> + <!-- Files generated by CPE tests --> + <exclude>**/checkpoint_synchPoint.xml</exclude> + <exclude>**/checkpoint_synchPoint.xml.prev</exclude> + + <!-- + File that seems to be temporarily placed into the CWD during the build but no idea where + it comes from. + --> + <exclude>**/jffi*.dylib</exclude> + + <!-- Generated during the build --> + <exclude>**/jVinci/META-INF/**</exclude> + <exclude>**/uimaj-adapter-vinci/META-INF/**</exclude> + <exclude>**/uimaj-core/META-INF/**</exclude> + <exclude>**/uimaj-cpe/META-INF/**</exclude> + <exclude>**/uimaj-ep-cas-editor/META-INF/**</exclude> + <exclude>**/uimaj-ep-cas-editor-ide/META-INF/**</exclude> + <exclude>**/uimaj-ep-configurator/META-INF/**</exclude> + <exclude>**/uimaj-ep-debug/META-INF/**</exclude> + <exclude>**/uimaj-ep-jcasgen/META-INF/**</exclude> + <exclude>**/uimaj-ep-launcher/META-INF/**</exclude> + <exclude>**/uimaj-ep-pear-packager/META-INF/**</exclude> + <exclude>**/uimaj-ep-runtime/META-INF/**</exclude> + <exclude>**/uimaj-tools/META-INF/**</exclude> + <exclude>**/uimaj-eclipse-feature-runtime/.tycho-consumer-pom.xml</exclude> + <exclude>**/uimaj-eclipse-feature-tools/.tycho-consumer-pom.xml</exclude> </excludes> - <fileMode>644</fileMode> </fileSet> - <!-- Copy .sh files as executable --> + <!-- license, readme, etc. calculated at build time --> <fileSet> - <fileMode>755</fileMode> - <directory>.</directory> - <outputDirectory/> - <includes> - <include>src/**/*.sh</include> - </includes> - </fileSet> - - <!-- ===================================== --> - <!-- copy top level files to the top level --> - <!-- ===================================== --> - <fileSet> - <directory>src/main/readme</directory> - <outputDirectory/> - <fileMode>644</fileMode> - </fileSet> - - <!-- Copy .sh files as executable --> - <fileSet> - <fileMode>755</fileMode> - <directory>src/main/readme_src</directory> - <includes> - <include>*.sh</include> - </includes> - <outputDirectory/> - </fileSet> - <!-- Copy everything else as non-executable --> - <fileSet> - <directory>src/main/readme_src</directory> - <excludes> - <exclude>*.sh</exclude> - </excludes> - <outputDirectory/> - <fileMode>644</fileMode> + <directory>${project.build.directory}/maven-shared-archive-resources/META-INF</directory> + <outputDirectory></outputDirectory> </fileSet> - - <!-- for every other source, use relative paths to locate - the project's root, and include the whole thing except for - target/ - .* (.settings/, .project, .classpath) - - There must be one entry here for each entry in - the <modules> section (recursively) - - Parent poms in the build/ section of svn are not included. - Aggregator poms used in this build are included. - --> - <fileSet> <directory>.</directory> <outputDirectory/> <includes> - <include>aggregate*/**</include> - <include>jVinci/**</include> - <include>PearPackagingMavenPlugin/**</include> - <include>uima-docbook-*/**</include> - <include>uimaj-adapter-*/**</include> - <include>uimaj-bootstrap/**</include> - <include>uimaj-component-test-util/**</include> - <include>uimaj-core/**</include> - <include>uimaj-cpe/**</include> - <include>uimaj-document-annotation/**</include> - <include>uimaj-eclipse-*/**</include> - <include>uimaj-ep-*/**</include> - <include>uimaj-examples/**</include> - <include>uimaj-parent</include> - <include>uimaj-test-util</include> - <include>uimaj-tools</include> + <!-- Feature modules are manifest-first so we check in the Eclipse metadata + --> + <include>**/uimaj-eclipse-feature-*/.project</include> + <include>**/uimaj-eclipse-update-site/.project</include> </includes> - </fileSet> - - <!-- aggregator poms --> - <!-- - <fileSet> - <directory>../aggregate-uimaj</directory> - <outputDirectory>/aggregate-uimaj</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../aggregate-uimaj-eclipse-plugins</directory> - <outputDirectory>/aggregate-uimaj</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../aggregate-uimaj-docbooks</directory> - <outputDirectory>/aggregate-uimaj</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - --> - <!-- from aggregate-uimaj-docbooks --> - <!-- - <fileSet> - <directory>../uima-docbook-overview-and-setup</directory> - <outputDirectory>/uima-docbook-overview-and-setup</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uima-docbook-references</directory> - <outputDirectory>/uima-docbook-references</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uima-docbook-tools</directory> - <outputDirectory>/uima-docbook-tools</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uima-docbook-tutorials-and-users-guides</directory> - <outputDirectory>/uima-docbook-tutorials-and-users-guides</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - --> - <!-- from aggregate-uimaj-eclipse-plugins --> - <!-- - <fileSet> - <directory>../uimaj-ep-cas-editor</directory> - <outputDirectory>/uimaj-ep-cas-editor</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>META-INF</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-ep-configurator</directory> - <outputDirectory>/uimaj-ep-configurator</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>META-INF</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-ep-debug</directory> - <outputDirectory>/uimaj-ep-debug</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>META-INF</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-ep-jcasgen</directory> - <outputDirectory>/uimaj-ep-jcasgen</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>META-INF</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-ep-pear-packager</directory> - <outputDirectory>/uimaj-ep-pear-packager</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>META-INF</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-ep-runtime</directory> - <outputDirectory>/uimaj-ep-runtime</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>META-INF</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - --> - <!-- from aggregate-uimaj --> - <!-- - <fileSet> - <directory>../jVinci</directory> - <outputDirectory>/jVinci</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-adapter-vinci</directory> - <outputDirectory>/uimaj-adapter-vinci</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-bootstrap</directory> - <outputDirectory>/uimaj-bootstrap</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-component-test-util</directory> - <outputDirectory>/uimaj-component-test-util</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-core</directory> - <outputDirectory>/uimaj-core</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-cpe</directory> - <outputDirectory>/uimaj-cpe</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-document-annotation</directory> - <outputDirectory>/uimaj-document-annotation</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-examples</directory> - <outputDirectory>/uimaj-examples</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-test-util</directory> - <outputDirectory>/uimaj-test-util</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../uimaj-tools</directory> - <outputDirectory>/uimaj-tools</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - <fileSet> - <directory>../PearPackagingMavenPlugin</directory> - <outputDirectory>/PearPackagingMavenPlugin</outputDirectory> - <excludes> - <exclude>target/**</exclude> - <exclude>.*/**</exclude> - </excludes> - <fileMode>644</fileMode> - </fileSet> - --> - + </fileSet> </fileSets> - </assembly> \ No newline at end of file diff --git a/uimaj-parent/pom.xml b/uimaj-parent/pom.xml index dba6d4d0a..d0b4dc6c4 100644 --- a/uimaj-parent/pom.xml +++ b/uimaj-parent/pom.xml @@ -155,6 +155,8 @@ <eclipseP2RepoId>org.eclipse.p2.201812</eclipseP2RepoId> <api_check_oldVersion>3.3.0</api_check_oldVersion> + + <assemblySrcDescriptor>src/main/assembly/src.xml</assemblySrcDescriptor> </properties> <dependencyManagement> @@ -331,6 +333,36 @@ </build> <profiles> + <profile> + <id>apache-release</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <executions> + <execution> + <!-- Overriding the execution from the Apache parent POM --> + <id>source-release-assembly</id> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + <configuration> + <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot> + <descriptorRefs combine.self="override"/> + <descriptors> + <descriptor>${assemblySrcDescriptor}</descriptor> + </descriptors> + <tarLongFileMode>${assembly.tarLongFileMode}</tarLongFileMode> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + <profile> <id>jacoco</id> <build>
