Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .mvn/extensions.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<extensions xmlns="http://maven.apache.org/EXTENSIONS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.1.0 https://maven.apache.org/xsd/core-extensions-1.0.0.xsd">
<extension>
<groupId>com.microsoft.azure</groupId>
<artifactId>artifacts-maven-credprovider</artifactId>
<version>3.0.0</version>
</extension>
</extensions>
3 changes: 3 additions & 0 deletions eng/pipelines/aggregate-reports.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ extends:
parameters:
JobType: 'Reporting'

# Authenticate with Azure Artifacts
- template: /eng/pipelines/templates/steps/maven-authenticate.yml

# TODO (vcolin7): Evaluate if we can avoid separating the Cosmos Spark connectors and Java 7 libraries from the rest for this. See: https://github.com/Azure/azure-sdk-for-java/issues/38283.
- task: Maven@4
displayName: 'Build all libraries that support Java $(JavaBuildVersion)'
Expand Down
3 changes: 3 additions & 0 deletions eng/pipelines/code-quality-reports.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,9 @@ extends:
parameters:
JobType: 'linting'

# Authenticate with Azure Artifacts
- template: /eng/pipelines/templates/steps/maven-authenticate.yml

# The only time generate_from_source_pom.py should be used to set the SparseCheckoutDirectories
# is for FromSource runs or, in the case of code quality reports, a run that needs to build
# everything using the latest source. It'll greedily set any service directories as it figures
Expand Down
3 changes: 3 additions & 0 deletions eng/pipelines/templates/jobs/build-validate-pom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ jobs:
parameters:
JobType: 'Build and Validate'

# Authenticate with Azure Artifacts
- template: /eng/pipelines/templates/steps/maven-authenticate.yml

- ${{ each artifact in parameters.Artifacts }}:
- task: Maven@4
displayName: 'Prepare POM: ${{artifact.groupId}}:${{artifact.name}}'
Expand Down
3 changes: 3 additions & 0 deletions eng/pipelines/templates/jobs/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ jobs:
ServiceDirectory: ${{parameters.ServiceDirectory}}
ExcludePaths: ${{parameters.ExcludePaths}}

# Authenticate with Azure Artifacts
- template: /eng/pipelines/templates/steps/maven-authenticate.yml

- task: UsePythonVersion@0
displayName: 'Use Python $(PythonVersion)'
inputs:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@ extends:
python -m pip install markdown2 BeautifulSoup4
displayName: 'pip install markdown2 and BeautifulSoup4'

# Authenticate with Azure Artifacts
- template: /eng/pipelines/templates/steps/maven-authenticate.yml

# Save the Package Properties
#
# ServiceDirectories variable is a plain, comma separated list of ServiceDirectories that is output by the
Expand Down
15 changes: 11 additions & 4 deletions eng/pipelines/templates/steps/build-and-test-native.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ parameters:
default: 'com.azure.resourcemanager:azure-resourcemanager-samples'

steps:
# Authenticate with Azure Artifacts
- template: /eng/pipelines/templates/steps/maven-authenticate.yml

- task: Maven@4
displayName: 'Build for non-From Source run'
inputs:
Expand All @@ -41,7 +44,8 @@ steps:
jdkDirectory: $(Agent.BuildDirectory)/graalvm-22.3.0
publishJUnitResults: false
goals: 'install'
env: ${{ parameters.TestEnvVars }}
env:
${{ insert }}: ${{ parameters.TestEnvVars }}
condition: and(succeeded(), ne(variables['TestFromSource'], 'true'))

- task: Maven@4
Expand All @@ -54,7 +58,8 @@ steps:
jdkDirectory: $(Agent.BuildDirectory)/graalvm-22.3.0
publishJUnitResults: false
goals: ${{ parameters.TestGoals }}
env: ${{ parameters.TestEnvVars }}
env:
${{ insert }}: ${{ parameters.TestEnvVars }}
# we want to run this when TestFromSource isn't true
condition: and(succeeded(), ne(variables['TestFromSource'], 'true'))

Expand Down Expand Up @@ -93,7 +98,8 @@ steps:
javaHomeOption: 'Path'
jdkDirectory: $(Agent.BuildDirectory)/graalvm-22.3.0
publishJUnitResults: false
env: ${{ parameters.TestEnvVars }}
env:
${{ insert }}: ${{ parameters.TestEnvVars }}
condition: and(succeeded(), eq(variables['TestFromSource'], 'true'))

- task: Maven@4
Expand All @@ -115,7 +121,8 @@ steps:
# lifecycle that test or verify targets would execute. The libraries were already
# compiled and installed in the previous task, this tasks only runs tests.
goals: ${{ parameters.TestGoals }}
env: ${{ parameters.TestEnvVars }}
env:
${{ insert }}: ${{ parameters.TestEnvVars }}
condition: and(succeeded(), eq(variables['TestFromSource'], 'true'))

- template: /eng/pipelines/templates/steps/retain-test-logs.yml
Expand Down
11 changes: 7 additions & 4 deletions eng/pipelines/templates/steps/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ parameters:
default: [ ]

steps:
# Authenticate with Azure Artifacts
- template: /eng/pipelines/templates/steps/maven-authenticate.yml

- task: Maven@4
${{ if eq(parameters.TestVersionSupport, 'true') }}:
displayName: '${{ parameters.VersionOverride }} - Build for non-From Source run'
Expand Down Expand Up @@ -121,7 +124,6 @@ steps:
env:
JAVA_HOME: $(PowerShellJavaHome)
MAVEN_OPTS: '$(MemoryOptions) $(LoggingOptions)'
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
${{ insert }}: ${{ parameters.TestEnvVars }}

- ${{ else }}:
Expand All @@ -140,7 +142,8 @@ steps:
jdkArchitectureOption: 'x64'
publishJUnitResults: false
goals: ${{ parameters.TestGoals }}
env: ${{ parameters.TestEnvVars }}
env:
${{ insert }}: ${{ parameters.TestEnvVars }}

# Generate the pom file with all the modules required for creating an aggregate code coverage report
- task: PythonScript@0
Expand Down Expand Up @@ -213,7 +216,6 @@ steps:
# task above
JAVA_HOME: $(PowerShellJavaHome)
MAVEN_OPTS: '$(MemoryOptions) $(LoggingOptions)'
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
${{ insert }}: ${{ parameters.TestEnvVars }}

- ${{ else }}:
Expand All @@ -237,7 +239,8 @@ steps:
# lifecycle that test or verify targets would execute. The libraries were already
# compiled and installed in the previous task, this tasks only runs tests.
goals: ${{ parameters.TestGoals }}
env: ${{ parameters.TestEnvVars }}
env:
${{ insert }}: ${{ parameters.TestEnvVars }}
condition: and(succeeded(), eq(variables['TestFromSource'], 'true'))

- ${{ if eq(parameters.TestVersionSupport, 'true') }}:
Expand Down
13 changes: 13 additions & 0 deletions eng/pipelines/templates/steps/maven-authenticate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
steps:
# Copy settings.xml to default Maven location
- pwsh: |
$m2Dir = if ($env:USERPROFILE) { "$env:USERPROFILE\.m2" } else { "$HOME/.m2" }
New-Item -ItemType Directory -Force -Path $m2Dir | Out-Null
Copy-Item -Path "$(Build.SourcesDirectory)/eng/settings.xml" -Destination "$m2Dir/settings.xml"
displayName: 'Setup Maven settings'

# Authenticate with Azure Artifacts feeds
- task: MavenAuthenticate@0
displayName: 'Maven Authenticate'
inputs:
artifactsFeeds: 'test-maven-feed'
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ parameters:
default: client

steps:
# maven dependency:tree needs to be able to resolve dependencies, so these should be installed.
# Authenticate with Azure Artifacts
- template: /eng/pipelines/templates/steps/maven-authenticate.yml

- task: Maven@4
${{ if ne(parameters.SDKType, 'client') }}:
displayName: 'Build and Run SpotBugs and Checkstyle'
Expand Down
2 changes: 1 addition & 1 deletion eng/pipelines/templates/variables/globals.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ variables:
# See https://github.com/actions/virtual-environments/issues/1499 for more info about the wagon options
# If reports about Maven dependency downloads become more common investigate re-introducing "-Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false", or other iterations of the configurations.
WagonOptions: '-Dmaven.wagon.httpconnectionManager.ttlSeconds=60 -Dmaven.wagon.http.pool=false'
DefaultOptions: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER) --batch-mode --fail-at-end --settings eng/settings.xml $(WagonOptions)'
DefaultOptions: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER) --batch-mode --fail-at-end $(WagonOptions)'
LoggingOptions: '-Dorg.slf4j.simpleLogger.defaultLogLevel=$(MavenLogLevel) -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
MemoryOptions: '-Xmx4096m'
DefaultSkipOptions: '-Dgpg.skip -Dmaven.javadoc.skip=true -Dcodesnippet.skip=true -Dspotbugs.skip=true -Dcheckstyle.skip=true -Drevapi.skip=true -DtrimStackTrace=false -Dspotless.apply.skip=true -Dspotless.check.skip=true'
Expand Down
2 changes: 1 addition & 1 deletion eng/repo-docs/docms/daily.update.setting.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<repositories>
<repository>
<id>azure-sdk-for-java</id>
<url>https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-java/maven/v1</url>
<url>https://pkgs.dev.azure.com/azure-sdk/public/_packaging/test-maven-feed/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
Expand Down
27 changes: 27 additions & 0 deletions eng/scripts/setup-dev.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# eng/scripts/setup-dev.ps1
# One-time setup script for Azure SDK for Java development

$settingsSource = Join-Path $PSScriptRoot "..\settings.xml"
$m2Dir = if ($env:USERPROFILE) { Join-Path $env:USERPROFILE ".m2" } else { Join-Path $HOME ".m2" }
$settingsTarget = Join-Path $m2Dir "settings.xml"

# Ensure .m2 directory exists
if (-not (Test-Path $m2Dir)) {
New-Item -ItemType Directory -Path $m2Dir | Out-Null
}

# Copy settings.xml if not present
if (-not (Test-Path $settingsTarget)) {
Copy-Item $settingsSource $settingsTarget
Write-Host "✓ Copied settings.xml to $settingsTarget"
} else {
Write-Host "⚠ settings.xml already exists at $settingsTarget"
$response = Read-Host "Overwrite? (y/N)"
if ($response -eq 'y') {
Copy-Item $settingsSource $settingsTarget -Force
Write-Host "✓ Overwritten settings.xml"
}
}

Write-Host ""
Write-Host "Setup complete! You can now run 'mvn' commands."
9 changes: 9 additions & 0 deletions eng/settings.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,13 @@
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<!-- Mirror all requests to Azure Artifacts feed, except Confluent (not available as upstream) -->
<mirror>
<id>test-maven-feed</id>
<name>Azure Artifacts Maven Mirror</name>
<url>https://pkgs.dev.azure.com/azure-sdk/public/_packaging/test-maven-feed/maven/v1</url>
<mirrorOf>*,!confluent</mirrorOf>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@weshaggard this is the only place using the confluent upstream which is not available in azure artifacts. Let me ask maven CFS support if we can add it to upstream source.

<url>https://packages.confluent.io/maven/</url>

The Credential provider docs also suggests using MavenAuthenticate@0 task in pipeline scenarios.

</mirror>
</mirrors>
</settings>
2 changes: 1 addition & 1 deletion sdk/ai/azure-ai-projects/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ Code generated by Microsoft (R) TypeSpec Code Generator.
<repositories>
<repository>
<id>azure-sdk-for-java</id>
<url>https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-java/maven/v1</url>
<url>https://pkgs.dev.azure.com/azure-sdk/public/_packaging/test-maven-feed/maven/v1</url>
<releases>
<enabled>true</enabled>
</releases>
Expand Down
34 changes: 0 additions & 34 deletions sdk/clientcore/annotation-processor/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,41 +40,7 @@
</developer>
</developers>

<!-- Repositories definitions -->
<repositories>
<repository>
<id>ossrh</id>
<name>Sonatype Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</snapshots>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>ossrh</id>
<name>Sonatype Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>

<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<name>Sonatype Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<uniqueVersion>true</uniqueVersion>
<layout>default</layout>
</snapshotRepository>
<site>
<id>azure-java-build-docs</id>
<url>${site.url}/site/</url>
Expand Down
5 changes: 0 additions & 5 deletions sdk/cosmos/azure-cosmos-kafka-connect/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,6 @@ Licensed under the MIT License.
<name>Confluent</name>
<url>https://packages.confluent.io/maven/</url>
</repository>
<repository>
<id>maven-repo1</id>
<name>Maven Repo1</name>
<url>https://repo1.maven.org/maven2/</url>
</repository>
</repositories>

<scm>
Expand Down
28 changes: 7 additions & 21 deletions sdk/parents/azure-client-sdk-parent-v2/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,37 +42,23 @@
<!-- Repositories definitions -->
<repositories>
<repository>
<id>ossrh</id>
<name>Sonatype Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</snapshots>
<id>central</id>
<url>https://pkgs.dev.azure.com/azure-sdk/public/_packaging/test-maven-feed/maven/v1</url>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>ossrh</id>
<name>Sonatype Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<id>central</id>
<url>https://pkgs.dev.azure.com/azure-sdk/public/_packaging/test-maven-feed/maven/v1</url>
</pluginRepository>
</pluginRepositories>

<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<name>Sonatype Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<uniqueVersion>true</uniqueVersion>
<layout>default</layout>
<id>azure-sdk-for-java</id>
<name>Azure SDK for Java</name>
<url>https://pkgs.dev.azure.com/azure-sdk/public/_packaging/test-maven-feed/maven/v1</url>
</snapshotRepository>
<site>
<id>azure-java-build-docs</id>
Expand Down
28 changes: 7 additions & 21 deletions sdk/parents/azure-client-sdk-parent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -42,37 +42,23 @@
<!-- Repositories definitions -->
<repositories>
<repository>
<id>ossrh</id>
<name>Sonatype Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
</snapshots>
<id>central</id>
<url>https://pkgs.dev.azure.com/azure-sdk/public/_packaging/test-maven-feed/maven/v1</url>
</repository>
</repositories>

<pluginRepositories>
<pluginRepository>
<id>ossrh</id>
<name>Sonatype Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
<id>central</id>
<url>https://pkgs.dev.azure.com/azure-sdk/public/_packaging/test-maven-feed/maven/v1</url>
</pluginRepository>
</pluginRepositories>

<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<name>Sonatype Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<uniqueVersion>true</uniqueVersion>
<layout>default</layout>
<id>azure-sdk-for-java</id>
<name>Azure SDK for Java</name>
<url>https://pkgs.dev.azure.com/azure-sdk/public/_packaging/test-maven-feed/maven/v1</url>
</snapshotRepository>
<site>
<id>azure-java-build-docs</id>
Expand Down
Loading
Loading