Comments (16)
Reproducer.zip
I'm attaching a reproducer, just run mvn clean package and the issue is show. Then comment the line 23 on Function.java and run again and the issue is gone.
from azure-maven-plugins.
I was able to get around this by declaring all my dependencies in the tag. However seems a bit awkward having to declare the dependencies twice:
com.microsoft.azure azure-functions-maven-plugin java-functions-group ${functionAppName} ${functionAppRegion} FUNCTIONS_EXTENSION_VERSION beta package-functions package <dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${apache.poi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${apache.poi.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.components.version}</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>${mssql-jdbc.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.components.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.components.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.components.version}</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>${commons.dbcp.version}</version>
</dependency>
</dependencies>
</plugin>
from azure-maven-plugins.
Hi @damadei , sorry for the late reply.
Could you please explain more about declare the dependencies twice
? Cause it looks like there is no duplicated denpendencies in your attached pom.xml?
from azure-maven-plugins.
Hi,
The maven Pom attached is the one that presents the error so it does not declared the dependencies twice. What I said is that to get rid of the issue I redeclared all dependencies again inside the plugin section for the azure functions plugin, this way it worked fine.
from azure-maven-plugins.
Yes I can reproduce the bug. It looks like something wrong with the classpath happened when we use the reflection to find the method with @FunctionName
annotation.
Except duplicate the dependencies, another work around could be adding the maven shaded plugin into the pom file:
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</plugin>
...
</plugins>
</build>
And please put the shaded plugin in the first place of the field to make sure the shaded jar will be packaged at the first time.
After we find out a way to fix the classpath issue, we will inform you in this issue thread. 😄
from azure-maven-plugins.
+1 also encounter this issue, and the shade workaround does not work 👎
from azure-maven-plugins.
Updated the code and I think the problem should be resolved.
The change has not been released, but you can install the code into your local machine to check if the problem is resolved. Really appreciated if you can help to verify.
Steps:
Install plugin
- git clone https://github.com/Microsoft/azure-maven-plugins.git
- cd azure-maven-plugins
- git checkout cs/function-fix
- mvn clean install -DskipTests
Update the pom.xml
@damadei take your pom file as an example:
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-functions-maven-plugin</artifactId>
<version>0.1.10-SNAPSHOT</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-functions-maven-plugin</artifactId>
<configuration>
<resourceGroup>java-functions-group</resourceGroup>
<appName>${functionAppName}</appName>
<region>${functionAppRegion}</region>
<appSettings>
<property>
<name>FUNCTIONS_EXTENSION_VERSION</name>
<value>beta</value>
</property>
</appSettings>
</configuration>
<executions>
<execution>
<id>package-functions</id>
<goals>
<goal>package</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<overwrite>true</overwrite>
<outputDirectory>${project.build.directory}/azure-functions/${functionAppName}
</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}</directory>
<includes>
<include>host.json</include>
<include>local.settings.json</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/azure-functions/${functionAppName}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
In short, what we changed in the pom file:
- change the plugin version to 0.1.10-SNAPSHOT (the version we local installed)
- remove the section for
maven-assembly-plugin
- add the section for
maven-dependency-plugin
More explanation
Recently, the Azure Java Function support to upload a lib
folder to the cloud, and the cloud function host will add the files in the lib
folder into the class path. This means we no need to use the fat jar any more.
In the plugin side, we add the maven-dependency-plugin
to copy the runtime dependency into the lib
folder, and we will add the jars in that folder into the class path when we treat the annotation through reflection. Meanwhile, the maven-assembly-plugin
can also be removed.
from azure-maven-plugins.
Hi, thanks for getting back so fast!
I've tried to follow the above instructions and encountered some issues
- Someone's been naughty, and there is a checkstyle error
- There is also a test compilation error
so the maven command line needed is:
mvn clean install -DskipTests -Dcheckstyle.skip=true -Dmaven.test.skip
Once this was completed, I did as described above and set the version of the plugin to 0.1.10-SNAPSHOT, removed the maven-assembly plugin and removed the dependencies from the azure-functions-plugin configuration, but I still encounter:
package-functions of goal com.microsoft.azure:azure-functions-maven-plugin:0.1.10-SNAPSHOT:package failed: A required class was missing while executing com.microsoft.azure:azure-functions-maven-plugin:0.1.10-SNAPSHOT:package: net/corda/core/node/NetworkParameters
[ERROR] -----------------------------------------------------
[ERROR] realm = plugin>com.microsoft.azure:azure-functions-maven-plugin:0.1.10-SNAPSHOT
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-functions-maven-plugin/0.1.10-SNAPSHOT/azure-functions-maven-plugin-0.1.10-SNAPSHOT.jar
[ERROR] urls[1] = file:/home/stefano/.m2/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar
[ERROR] urls[2] = file:/home/stefano/.m2/repository/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar
[ERROR] urls[3] = file:/home/stefano/.m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.0/org.eclipse.sisu.inject-0.3.0.jar
[ERROR] urls[4] = file:/home/stefano/.m2/repository/org/apache/maven/maven-builder-support/3.3.3/maven-builder-support-3.3.3.jar
[ERROR] urls[5] = file:/home/stefano/.m2/repository/org/eclipse/aether/aether-util/1.0.2.v20150114/aether-util-1.0.2.v20150114.jar
[ERROR] urls[6] = file:/home/stefano/.m2/repository/org/sonatype/sisu/sisu-guice/3.2.5/sisu-guice-3.2.5-no_aop.jar
[ERROR] urls[7] = file:/home/stefano/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
[ERROR] urls[8] = file:/home/stefano/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.21/plexus-interpolation-1.21.jar
[ERROR] urls[9] = file:/home/stefano/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[ERROR] urls[10] = file:/home/stefano/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
[ERROR] urls[11] = file:/home/stefano/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[12] = file:/home/stefano/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar
[ERROR] urls[13] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-maven-plugin-lib/0.1.7/azure-maven-plugin-lib-0.1.7.jar
[ERROR] urls[14] = file:/home/stefano/.m2/repository/org/apache/maven/shared/maven-filtering/3.0.0/maven-filtering-3.0.0.jar
[ERROR] urls[15] = file:/home/stefano/.m2/repository/org/apache/maven/shared/maven-shared-utils/3.0.0/maven-shared-utils-3.0.0.jar
[ERROR] urls[16] = file:/home/stefano/.m2/repository/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar
[ERROR] urls[17] = file:/home/stefano/.m2/repository/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar
[ERROR] urls[18] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure/1.2.1/azure-1.2.1.jar
[ERROR] urls[19] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-resources/1.2.1/azure-mgmt-resources-1.2.1.jar
[ERROR] urls[20] = file:/home/stefano/.m2/repository/org/slf4j/slf4j-simple/1.7.5/slf4j-simple-1.7.5.jar
[ERROR] urls[21] = file:/home/stefano/.m2/repository/io/reactivex/rxjava/1.2.4/rxjava-1.2.4.jar
[ERROR] urls[22] = file:/home/stefano/.m2/repository/org/apache/httpcomponents/httpcore/4.4.5/httpcore-4.4.5.jar
[ERROR] urls[23] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-storage/1.2.1/azure-mgmt-storage-1.2.1.jar
[ERROR] urls[24] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-network/1.2.1/azure-mgmt-network-1.2.1.jar
[ERROR] urls[25] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-compute/1.2.1/azure-mgmt-compute-1.2.1.jar
[ERROR] urls[26] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-graph-rbac/1.2.1/azure-mgmt-graph-rbac-1.2.1.jar
[ERROR] urls[27] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-keyvault/1.2.1/azure-mgmt-keyvault-1.2.1.jar
[ERROR] urls[28] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-batch/1.2.1/azure-mgmt-batch-1.2.1.jar
[ERROR] urls[29] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-trafficmanager/1.2.1/azure-mgmt-trafficmanager-1.2.1.jar
[ERROR] urls[30] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-dns/1.2.1/azure-mgmt-dns-1.2.1.jar
[ERROR] urls[31] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-redis/1.2.1/azure-mgmt-redis-1.2.1.jar
[ERROR] urls[32] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-appservice/1.2.1/azure-mgmt-appservice-1.2.1.jar
[ERROR] urls[33] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-cdn/1.2.1/azure-mgmt-cdn-1.2.1.jar
[ERROR] urls[34] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-sql/1.2.1/azure-mgmt-sql-1.2.1.jar
[ERROR] urls[35] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-containerregistry/1.2.1/azure-mgmt-containerregistry-1.2.1.jar
[ERROR] urls[36] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-cosmosdb/1.2.1/azure-mgmt-cosmosdb-1.2.1.jar
[ERROR] urls[37] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-search/1.2.1/azure-mgmt-search-1.2.1.jar
[ERROR] urls[38] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-mgmt-servicebus/1.2.1/azure-mgmt-servicebus-1.2.1.jar
[ERROR] urls[39] = file:/home/stefano/.m2/repository/joda-time/joda-time/2.1/joda-time-2.1.jar
[ERROR] urls[40] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-client-runtime/1.1.0/azure-client-runtime-1.1.0.jar
[ERROR] urls[41] = file:/home/stefano/.m2/repository/com/microsoft/rest/client-runtime/1.1.0/client-runtime-1.1.0.jar
[ERROR] urls[42] = file:/home/stefano/.m2/repository/com/squareup/retrofit2/retrofit/2.1.0/retrofit-2.1.0.jar
[ERROR] urls[43] = file:/home/stefano/.m2/repository/com/squareup/okhttp3/okhttp/3.3.1/okhttp-3.3.1.jar
[ERROR] urls[44] = file:/home/stefano/.m2/repository/com/squareup/okio/okio/1.8.0/okio-1.8.0.jar
[ERROR] urls[45] = file:/home/stefano/.m2/repository/com/squareup/okhttp3/logging-interceptor/3.3.1/logging-interceptor-3.3.1.jar
[ERROR] urls[46] = file:/home/stefano/.m2/repository/com/squareup/okhttp3/okhttp-urlconnection/3.3.1/okhttp-urlconnection-3.3.1.jar
[ERROR] urls[47] = file:/home/stefano/.m2/repository/com/squareup/retrofit2/converter-jackson/2.1.0/converter-jackson-2.1.0.jar
[ERROR] urls[48] = file:/home/stefano/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.7.2/jackson-databind-2.7.2.jar
[ERROR] urls[49] = file:/home/stefano/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-joda/2.7.2/jackson-datatype-joda-2.7.2.jar
[ERROR] urls[50] = file:/home/stefano/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.7.0/jackson-annotations-2.7.0.jar
[ERROR] urls[51] = file:/home/stefano/.m2/repository/com/squareup/retrofit2/adapter-rxjava/2.1.0/adapter-rxjava-2.1.0.jar
[ERROR] urls[52] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-client-authentication/1.1.0/azure-client-authentication-1.1.0.jar
[ERROR] urls[53] = file:/home/stefano/.m2/repository/com/microsoft/azure/adal4j/1.1.2/adal4j-1.1.2.jar
[ERROR] urls[54] = file:/home/stefano/.m2/repository/com/nimbusds/oauth2-oidc-sdk/4.5/oauth2-oidc-sdk-4.5.jar
[ERROR] urls[55] = file:/home/stefano/.m2/repository/javax/mail/mail/1.4.7/mail-1.4.7.jar
[ERROR] urls[56] = file:/home/stefano/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar
[ERROR] urls[57] = file:/home/stefano/.m2/repository/net/jcip/jcip-annotations/1.0/jcip-annotations-1.0.jar
[ERROR] urls[58] = file:/home/stefano/.m2/repository/net/minidev/json-smart/1.1.1/json-smart-1.1.1.jar
[ERROR] urls[59] = file:/home/stefano/.m2/repository/com/nimbusds/lang-tag/1.4/lang-tag-1.4.jar
[ERROR] urls[60] = file:/home/stefano/.m2/repository/com/nimbusds/nimbus-jose-jwt/3.1.2/nimbus-jose-jwt-3.1.2.jar
[ERROR] urls[61] = file:/home/stefano/.m2/repository/org/bouncycastle/bcprov-jdk15on/1.51/bcprov-jdk15on-1.51.jar
[ERROR] urls[62] = file:/home/stefano/.m2/repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar
[ERROR] urls[63] = file:/home/stefano/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar
[ERROR] urls[64] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-annotations/1.2.0/azure-annotations-1.2.0.jar
[ERROR] urls[65] = file:/home/stefano/.m2/repository/com/microsoft/azure/applicationinsights-core/1.0.9/applicationinsights-core-1.0.9.jar
[ERROR] urls[66] = file:/home/stefano/.m2/repository/eu/infomas/annotation-detector/3.0.4/annotation-detector-3.0.4.jar
[ERROR] urls[67] = file:/home/stefano/.m2/repository/commons-io/commons-io/2.4/commons-io-2.4.jar
[ERROR] urls[68] = file:/home/stefano/.m2/repository/org/apache/httpcomponents/httpclient/4.5.3/httpclient-4.5.3.jar
[ERROR] urls[69] = file:/home/stefano/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
[ERROR] urls[70] = file:/home/stefano/.m2/repository/commons-net/commons-net/3.6/commons-net-3.6.jar
[ERROR] urls[71] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-functions-java-core/1.0.0-beta-2/azure-functions-java-core-1.0.0-beta-2.jar
[ERROR] urls[72] = file:/home/stefano/.m2/repository/org/reflections/reflections/0.9.11/reflections-0.9.11.jar
[ERROR] urls[73] = file:/home/stefano/.m2/repository/com/google/guava/guava/20.0/guava-20.0.jar
[ERROR] urls[74] = file:/home/stefano/.m2/repository/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar
[ERROR] urls[75] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-storage/5.4.0/azure-storage-5.4.0.jar
[ERROR] urls[76] = file:/home/stefano/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.6.0/jackson-core-2.6.0.jar
[ERROR] urls[77] = file:/home/stefano/.m2/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar
[ERROR] urls[78] = file:/home/stefano/.m2/repository/com/microsoft/azure/azure-keyvault-core/0.8.0/azure-keyvault-core-0.8.0.jar
[ERROR] urls[79] = file:/home/stefano/.m2/repository/org/zeroturnaround/zt-zip/1.12/zt-zip-1.12.jar
[ERROR] urls[80] = file:/home/stefano/.m2/repository/junit/junit/4.12/junit-4.12.jar
[ERROR] urls[81] = file:/home/stefano/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------: net.corda.core.node.NetworkParameters
Interestingly, the jar that contains that class (corda-api) is not on the list of scanned jars.
Adding the list of dependencies back to the plugin configuration does work.
from azure-maven-plugins.
@roastario Did you add the maven-dependency-plugin in your pom?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/azure-functions/${functionAppName}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<includeScope>runtime</includeScope>
</configuration>
</execution>
</executions>
</plugin>
from azure-maven-plugins.
from azure-maven-plugins.
@roastario Great! Thanks.
from azure-maven-plugins.
hokay @jdneo I've pushed it to: https://github.com/roastario/azure-functions-networkmap and it's on branch "new_plugins_investigation"
feel free to check it out and test it!
from azure-maven-plugins.
@roastario I tested your code, and no error occurred during the package lifecycle.
I also tested to package after removing all the dependencies definition in the azure-functions-maven-plugin configuration, also works well.
Does the problem still occur on your side?
from azure-maven-plugins.
Hi, I must apologize, I just tried it again with removing the second list of dependencies and it worked. I must have had something odd in my environment.
Looks like it's fixed, thanks 👍
from azure-maven-plugins.
@roastario Thank you too to share the project to me and help verify the issue. 😄
I'll inform you in this issue thread once we released this fix into the Maven Central.
from azure-maven-plugins.
v0.2.0 released. Please have a try!
from azure-maven-plugins.
Related Issues (20)
- mvn com.microsoft.azure:azure-spring-apps-maven-plugin:1.14.0:config returns error when work with Java 17 HOT 10
- Improve logic of getting java version
- All Trigger Types Not Available in IntelliJ IDEA IDE while adding the additional function to existing Java Azure Functions Project HOT 2
- Feature request: add configuration option to enable app service easy auth
- Does not support the API version '2022-09-01-preview HOT 2
- A lot of error logs about AcquireTokenSilentSupplier HOT 1
- azure-webapp-maven-plugin:2.9.0 seems to have errors
- [FEATURE_REQ] Spring apps plugin does not support defining the order of apps when deploying aggregate projects HOT 1
- [FEATURE_REQ] Use Spring Apps plugin to configure a more accurate app name
- [FEATURE_REQ] Support pre-definition for Spring Apps maven plugin HOT 1
- Plugin should declare these Maven artifacts in `provided` scope
- Remove or suppress the message: "default messager has already been registered" HOT 1
- Ability to set property values from azure-maven-plugin ? HOT 1
- Ie
- azure-webapp-maven-plugin deploy fails with version >= 2.11.0 HOT 2
- Usage of func start options HOT 1
- Unable to deploy to Tomcat 10.0 using azure-webapp-maven-plugin 2.12.0 HOT 1
- Azure deployment is failing Warning: 'Content-Type' not found. Returning default encoding: JSON Error: Status code 400, (empty body) HOT 5
- functions plugin does not redeploy app HOT 3
- Unable to deploy from devcontainer HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from azure-maven-plugins.